原生js+css调节音量滑块


Posted in Javascript onJanuary 15, 2020

本文实例为大家分享了js调节音量滑块的具体代码,供大家参考,具体内容如下

效果

原生js+css调节音量滑块

html部分

<body>
<div class="all">
<p>当前位置0%</p>
<div class="bar">
<div class="box"></div>
</div>
</div>
</body>

css部分

<style>
.all {
width: 500px;
height: 80px;
margin: 100px auto;
position: relative;
}

.bar {
width: 500px;
height: 20px;
border-radius: 10px;
background: #aaa;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
cursor: pointer;
}

.box {
width: 30px;
height: 30px;
background: #000;
position: absolute;
bottom: 0;
top: 0;
margin: auto 0;
border-radius: 50%;
cursor: pointer;
transition: left 0.1s linear 0s;
}
</style>

js逻辑

<script>
var box = document.getElementsByClassName('box')[0]
var bar = document.getElementsByClassName('bar')[0]
var all = document.getElementsByClassName('all')[0]
var p = document.getElementsByTagName('p')[0]
var cha = bar.offsetWidth - box.offsetWidth
box.onmousedown = function (ev) {
let boxL = box.offsetLeft
let e = ev || window.event //兼容性
let mouseX = e.clientX //鼠标按下的位置
window.onmousemove = function (ev) {
let e = ev || window.event
let moveL = e.clientX - mouseX //鼠标移动的距离
let newL = boxL + moveL //left值
// 判断最大值和最小值
if (newL < 0) {
newL = 0
}
if (newL >= cha) {
newL = cha
}
// 改变left值
box.style.left = newL + 'px'
// 计算比例
let bili = newL / cha * 100
p.innerHTML = '当前位置' + Math.ceil(bili) + '%'
return false //取消默认事件
}
window.onmouseup = function () {
window.onmousemove = false //解绑移动事件
return false
}
return false
};
// 点击音量条
bar.onclick = function (ev) {
let left = ev.clientX - all.offsetLeft - box.offsetWidth / 2
if (left < 0) {
left = 0
}
if (left >= cha) {
left = cha
}
box.style.left = left + 'px'
let bili = left / cha * 100
p.innerHTML = '当前位置' + Math.ceil(bili) + '%'
console.log(left)
return false
}
</script>

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

Javascript 相关文章推荐
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
JQuery中clone方法复制节点
May 18 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
jquery插件ContextMenu设置右键菜单
Mar 13 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
Sep 22 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
Jul 22 Javascript
JavaScript基础之this和箭头函数详析
Sep 05 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
JavaScript代理模式原理与用法实例详解
Mar 10 Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 #Javascript
JS函数进阶之继承用法实例分析
Jan 15 #Javascript
JS函数进阶之prototy用法实例分析
Jan 15 #Javascript
JS函数基本定义与用法示例
Jan 15 #Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 #Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 #Javascript
vue移动端使用canvas签名的实现
Jan 15 #Javascript
You might like
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
java script编程起步(第三课)
2007/01/10 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
如何提高数据访问速度
2016/12/26 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
python如何创建TCP服务端和客户端
2018/08/26 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
佳能法国商店:Canon法国
2019/02/14 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
房地产项目建议书
2014/03/12 职场文书
yy生日主持词
2014/03/20 职场文书
市场推广策划方案
2014/06/02 职场文书
社区服务标语
2014/07/01 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android
详细介绍python操作RabbitMq
2022/04/12 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS