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 使用个人心得
Feb 26 Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 Javascript
jQuery解析Json实例详解
Nov 24 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
聊聊Vue.js的template编译的问题
Oct 09 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
May 05 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
小程序点击图片实现png转jpg
Oct 22 Javascript
详解Vue 项目中的几个实用组件(ts)
Oct 29 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
ThinkPHP中order()使用方法详解
2016/04/19 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
js格式化时间小结
2014/11/03 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
浅谈Python中的闭包
2015/07/08 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python 接口返回的json字符串实例
2018/03/27 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
应届大学生的推荐信
2013/11/20 职场文书
2014年度考核工作总结
2014/12/24 职场文书
运动会800米赞词
2015/07/22 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
Java异常体系非正常停止和分类
2022/06/14 Java/Android
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python