原生js+css调节音量滑块

 更新时间:2020年01月15日 11:55:14   作者:孙华鹏  
这篇文章主要介绍了原生js+css调节音量滑块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

效果

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>

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

相关文章

  • js实现tab切换效果

    js实现tab切换效果

    本文主要分享了js封装一个tab切换效果的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js实现简单抽奖功能

    js实现简单抽奖功能

    这篇文章主要为大家详细介绍了js实现简单抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 微信小程序表单弹窗实例

    微信小程序表单弹窗实例

    这篇文章主要为大家详细介绍了微信小程序表单弹窗实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 图片Slider 带左右按钮的js示例

    图片Slider 带左右按钮的js示例

    图片Slider的效果想必大家都有见到过吧,下面使用js简单实现下,喜欢的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • Three.js如何实现雾化效果示例代码

    Three.js如何实现雾化效果示例代码

    雾化效果是3D的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果,下面这篇文章主要给大家介绍了关于Three.js如何实现雾化效果的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • elemetUi 组件--el-upload实现上传Excel文件的实例

    elemetUi 组件--el-upload实现上传Excel文件的实例

    这篇文章主要介绍了elemetUi 组件--el-upload实现上传Excel文件的实例的相关资料,希望通过本文大家能够实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • JS读取cookies信息(记录用户名)

    JS读取cookies信息(记录用户名)

    很多网站、博客把网页生成html静态页面了,以利于搜索引擎的索引排名,减轻服务器负担。静态页面由于其稳定快速更快,给用户及站长带来了方便。但评论后如何记住用户的信息呢
    2012-01-01
  • IE6下JS动态设置图片src地址问题

    IE6下JS动态设置图片src地址问题

    解决IE6下JS动态设置图片IMG的SRC时图片无法加载错误的方法
    2010-01-01
  • JsonServer安装及启动过程图解

    JsonServer安装及启动过程图解

    这篇文章主要介绍了JsonServer安装及启动过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 根据对象的某一属性进行排序的js代码(如:name,age)

    根据对象的某一属性进行排序的js代码(如:name,age)

    实例为按降序排列,若想改为升序只需把比较器中的value2-value1改为value1-value2就可以了
    2010-08-08

最新评论