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 主动派发事件总结
Aug 09 Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 Javascript
JavaScript中诡异的delete操作符
Mar 12 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
Javascript实现信息滚动效果
May 18 Javascript
通过源码分析Vue的双向数据绑定详解
Sep 24 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
angularJs 表格添加删除修改查询方法
Feb 27 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 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时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
页面版文本框智能提示JS代码
2009/11/20 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
python输入多行字符串的方法总结
2019/07/02 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers