天天看點

音量控制豎直滑塊html,用js實作調節音量滑塊的方法

用js實作調節音量滑塊的方法

釋出時間:2020-03-26 14:07:36

來源:億速雲

閱讀:879

作者:小新

今天小編分享的是用js實作調節音量滑塊的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小夥伴們可以參考一下。

音量控制豎直滑塊html,用js實作調節音量滑塊的方法

首先,我們來看一下效果:

音量控制豎直滑塊html,用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實作調節音量滑塊的方法就分享到這裡了,當然并不止以上和大家分析的辦法,不過小編可以保證其準确性是絕對沒問題的。希望以上内容可以對大家有一定的參考價值,可以學以緻用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。