用js實作調節音量滑塊的方法
釋出時間:2020-03-26 14:07:36
來源:億速雲
閱讀:879
作者:小新
今天小編分享的是用js實作調節音量滑塊的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小夥伴們可以參考一下。
首先,我們來看一下效果:
html代碼:
目前位置0%
css代碼:
.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;
}
js代碼:
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
}
關于用js實作調節音量滑塊的方法就分享到這裡了,當然并不止以上和大家分析的辦法,不過小編可以保證其準确性是絕對沒問題的。希望以上内容可以對大家有一定的參考價值,可以學以緻用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。