原生js+css調(diào)節(jié)音量滑塊
更新時(shí)間:2020年01月15日 11:55:14 作者:孫華鵬
這篇文章主要介紹了原生js+css調(diào)節(jié)音量滑塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了js調(diào)節(jié)音量滑塊的具體代碼,供大家參考,具體內(nèi)容如下
效果

html部分
<body> <div class="all"> <p>當(dāng)前位置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 //鼠標(biāo)按下的位置
window.onmousemove = function (ev) {
let e = ev || window.event
let moveL = e.clientX - mouseX //鼠標(biāo)移動(dòng)的距離
let newL = boxL + moveL //left值
// 判斷最大值和最小值
if (newL < 0) {
newL = 0
}
if (newL >= cha) {
newL = cha
}
// 改變left值
box.style.left = newL + 'px'
// 計(jì)算比例
let bili = newL / cha * 100
p.innerHTML = '當(dāng)前位置' + Math.ceil(bili) + '%'
return false //取消默認(rèn)事件
}
window.onmouseup = function () {
window.onmousemove = false //解綁移動(dòng)事件
return false
}
return false
};
// 點(diǎn)擊音量條
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 = '當(dāng)前位置' + Math.ceil(bili) + '%'
console.log(left)
return false
}
</script>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Three.js如何實(shí)現(xiàn)霧化效果示例代碼
霧化效果是3D的比較常見的特性,在游戲中見到的煙霧、爆炸火焰以及白云等效果都是霧化的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Three.js如何實(shí)現(xiàn)霧化效果的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
elemetUi 組件--el-upload實(shí)現(xiàn)上傳Excel文件的實(shí)例
這篇文章主要介紹了elemetUi 組件--el-upload實(shí)現(xiàn)上傳Excel文件的實(shí)例的相關(guān)資料,希望通過本文大家能夠?qū)崿F(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
IE6下JS動(dòng)態(tài)設(shè)置圖片src地址問題
解決IE6下JS動(dòng)態(tài)設(shè)置圖片IMG的SRC時(shí)圖片無法加載錯(cuò)誤的方法2010-01-01
根據(jù)對(duì)象的某一屬性進(jìn)行排序的js代碼(如:name,age)
實(shí)例為按降序排列,若想改為升序只需把比較器中的value2-value1改為value1-value2就可以了2010-08-08

