原生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 相关文章推荐
科讯商业版中用到的ajax空间与分页函数
Sep 02 Javascript
jQuery 创建Dom元素
May 07 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
7个jQuery最佳实践
Jan 12 Javascript
Ionic默认的Tabs模板使用实例
Aug 29 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
Jan 11 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
Feb 20 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
javascript  删除select中的所有option的实例
Sep 17 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
JS代码触发事件代码实例
Jan 02 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
php开启openssl的方法
2014/05/15 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python网络爬虫实例讲解
2016/04/28 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
python实现矩阵打印
2019/03/02 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
土木工程专业自荐信
2013/10/04 职场文书
医学类个人求职信范文
2014/02/05 职场文书
幼儿教师工作感言
2014/02/14 职场文书
个人委托书范本
2014/04/02 职场文书
科技之星事迹材料
2014/06/02 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
鸦片战争观后感
2015/06/09 职场文书
优秀创业计划书分享
2019/07/19 职场文书
Python如何配置环境变量详解
2021/05/18 Python
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
python爬取某网站原图作为壁纸
2021/06/02 Python