原生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和CSS速查手册
Aug 20 Javascript
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
一个js拖拽的效果类和dom-drag.js浅析
Jul 17 Javascript
JavaScript 获取当前时间戳的代码
Aug 05 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
Aug 31 Javascript
vue移动端轻量级的轮播组件实现代码
Jul 12 Javascript
如何将百度地图包装成Vue的组件的方法步骤
Feb 12 Javascript
基于jQuery实现可编辑的表格
Dec 11 jQuery
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
js实现列表向上无限滚动
Jan 13 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处理换行符的问题 \r\n
2013/06/13 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
JS的数组迭代方法
2015/02/05 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
微信小程序实现留言板
2018/10/31 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
详解Python验证码识别
2016/01/25 Python
Python Requests安装与简单运用
2016/04/07 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
Python中的类与类型示例详解
2019/07/10 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
人力资源经理的岗位职责
2014/03/02 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript