原生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 相关文章推荐
JS中实现replaceAll的方法(实例代码)
Nov 12 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
原生javascript实现图片无缝滚动效果
Feb 12 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
vue+element-ui实现表格编辑的三种实现方式
Oct 31 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 09 Javascript
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
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中使用file_get_contents post数据代码例子
2015/02/13 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue生命周期的探索
2019/04/03 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
Python多线程爬虫简单示例
2016/03/04 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
深圳茁壮笔试题
2015/05/28 面试题
工商管理专业职业生涯规划
2014/01/01 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
企业计划生育责任书
2015/05/09 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS