色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 拖動條

李明濤1年前7瀏覽0評論

javascript拖動條可以幫助我們實現對某一值的選擇或者調整,比如音量調節、亮度調節,下面我們就來看一下如何實現這個功能。

首先,我們需要準備好拖動條的UI,代碼如下:

<div id="slide-bar">
<div id="progress-bar"></div>
<div id="thumb"></div>
</div>

這里我們設置一個slide-bar容器用于包裹進度條和拖動塊thumb,進度條使用progress-bar,拖動塊使用thumb。

接下來,我們需要為拖動塊thumb創建事件,允許我們通過鼠標拖動thumb來調整進度條的進度,代碼如下:

var slideBar = document.getElementById("slide-bar");
var progressBar = document.getElementById("progress-bar");
var thumb = document.getElementById("thumb");
thumb.onmousedown = function(e){
//代碼...
}

在鼠標按下時,我們需要獲取鼠標的位置,用于計算移動距離。鼠標移動時,我們需要將thumb移動到對應位置,并且修改進度條的長度,用于顯示當前進度,代碼如下:

var offsetL = slideBar.offsetLeft;
var thumbWidth = thumb.offsetWidth;
var barWidth = slideBar.offsetWidth - thumbWidth;
thumb.onmousedown = function(e){
var event = e || window.event;
var startX = event.clientX;
var disX = startX - thumb.offsetLeft;
document.onmousemove = function(e){
//計算拖動距離并設置thumb和progress-bar的樣式
}
}

拖動thumb的距離可以通過鼠標的開始位置和結束位置進行計算,并且進行邊界處理,保證thumb不會跑出進度條范圍。修改進度條的長度只需將progress-bar的樣式(width)進行修改即可。

最后,我們需要清除事件監聽,代碼如下:

thumb.onmousedown = function(e){
var event = e || window.event;
var startX = event.clientX;
var disX = startX - thumb.offsetLeft;
document.onmousemove = function(e){
//代碼...
}
document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null;
}
}

這樣我們就完成了javascript拖動條的實現,它可以很好的幫助我們實現多種場景下的數據調整,比如音量、亮度、字體大小等。