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 相关文章推荐
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
uploadify 3.0 详细使用说明
Jun 18 Javascript
JS实现文档加载完成后执行代码
Jul 09 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
Jul 25 Javascript
微信小程序select下拉框实现源码
Nov 08 Javascript
详解node.js 事件循环
Jul 22 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python实现元素等待代码实例
2019/11/11 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
人力资源管理专业学生自我评价
2013/11/20 职场文书
教师评优事迹材料
2014/01/10 职场文书
四年级评语大全
2014/04/21 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
校园开放日新闻稿
2015/07/17 职场文书
小学毕业感言200字
2015/07/30 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android