JS实现音量控制拖动


Posted in Javascript onJanuary 15, 2020

本文实例为大家分享了JS实现音量控制拖动的具体代码,供大家参考,具体内容如下

描述:

JS——实现音量控制拖动

    1)、有底条,有拖拽按钮
    2)、设置最小和最大值
    3)、拖动定位后,抛出事件当前的所在值

效果:

JS实现音量控制拖动

实现:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    #all {
      width: 500px;
      height: 86px;
      margin: 100px auto;
      position: relative;
    }
 
    #bar {
      width: 500px;
      height: 20px;
      border-radius: 10px;
      background: #9acfea;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto;
      cursor: pointer;
    }
 
    #box {
      width: 30px;
      height: 30px;
      background: #ec971f;
      position: absolute;
      bottom: 0;
      top: 0;
      margin: auto 0;
      border-radius: 50%;
      cursor: pointer;
      transition: left 0.1s linear 0s;
    }
  </style>
</head>
<body>
  <div id="all">
    <p>当前位置0%</p>
    <div id="bar">
      <div id="box"></div>
    </div>
  </div>
<script>
 
  var all=document.getElementById("all");//容器
  var p=document.querySelector("p");//进度百分比
  var bar=document.getElementById("bar");//进度显示条
  var box=document.getElementById("box");//进度按钮
 
  var boxL,newL,moveL,mouseX,left;
  var cha = bar.offsetWidth - box.offsetWidth;
  var index=0;//标记状态
 
  var evt=new Event("change");//本身的事件
  init();
  function init() {
    box.addEventListener("mousedown",mouseDownclickHandler);
    document.addEventListener("mousemove",mouseMoveclickHandler)
    document.addEventListener("mouseup",mouseUpclickHandler);
    document.addEventListener("change",changeHandler);
    bar.addEventListener("click",clickHandler);
  }
 
  function mouseDownclickHandler(e) {
    index=1;
    boxL=box.offsetLeft;
    mouseX=e.clientX;//鼠标按下拖动的位置
  }
 
  function mouseMoveclickHandler(e) {
    if(index===1){
      moveL=e.clientX-mouseX;//鼠标移动
      newL=boxL+moveL;//left值
 
      //判断最小值与最大值
      if(newL<0){
        newL = 0;
      }
      if(newL>=cha){
        newL=cha;
      }
      // 改变left值
      box.style.left = newL + 'px';
      // 计算比例
      var bili = newL / cha * 100;
      p.textContent = '当前位置' + Math.ceil(bili) + '%';
      evt.elem=this;//当前指向 对象
      document.dispatchEvent(evt);//朝谁发送 抛发
    }
  }
 
  function mouseUpclickHandler(e) {
    index=0;
    evt.elem=this;//当前指向 对象
    document.dispatchEvent(evt);//朝谁发送 抛发
  }
 
  function clickHandler(e) {
    left = e.clientX-all.offsetLeft-box.offsetWidth/2;
    if(left<0){
      left=0;
    }
    if(left>=cha){
      left=cha;
    }
    box.style.left=left+'px';
    bili=left/cha*100;
    p.innerHTML='当前位置'+ Math.ceil(bili)+'%';
    evt.elem=this;//当前指向 对象
    document.dispatchEvent(evt);//朝谁发送 抛发
  }
 
  function changeHandler(e) {
    console.log(e);
  }
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网页javascript精华代码集
Jan 24 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
Apr 15 Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
基于Proxy的小程序状态管理实现
Jun 14 Javascript
JavaScript监听触摸事件代码实例
Dec 30 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
JavaScript中layim之整合右键菜单的示例代码
Feb 06 Javascript
基于vue.js实现购物车
Jan 15 #Javascript
原生js+css调节音量滑块
Jan 15 #Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 #Javascript
JS函数进阶之继承用法实例分析
Jan 15 #Javascript
JS函数进阶之prototy用法实例分析
Jan 15 #Javascript
JS函数基本定义与用法示例
Jan 15 #Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 #Javascript
You might like
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
yii用户注册表单验证实例
2015/12/26 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
Python中用sleep()方法操作时间的教程
2015/05/22 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
anaconda如何查看并管理python环境
2019/07/05 Python
pandas 层次化索引的实现方法
2019/07/06 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
信息专业学生学习的自我评价
2014/02/17 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
面试通知邮件
2015/04/20 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android
Python实现照片卡通化
2021/12/06 Python