CSS按住滑塊拖動是網(wǎng)頁設計中常見的效果,可以讓用戶自由地滑動并選擇內(nèi)容。下面是一個簡單的示例:
.slider { width: 200px; height: 20px; background-color: #ccc; border-radius: 10px; position: relative; margin: 20px; } .handle { width: 40px; height: 40px; border-radius: 50%; background-color: #4CAF50; position: absolute; top: -10px; left: -10px; cursor: pointer; }
上面的代碼定義了一個滑塊和一個滑塊手柄?;瑝K是一個灰色矩形,手柄是一個綠色圓形。
下面是JS代碼,實現(xiàn)按住手柄拖動的效果:
var handle = document.querySelector('.handle'); var isDragging = false; var startPos = {x: 0, y: 0}; var currentPos = {x: 0, y: 0}; handle.addEventListener('mousedown', function(e) { isDragging = true; startPos.x = e.clientX; startPos.y = e.clientY; }); document.addEventListener('mousemove', function(e) { if (isDragging) { var deltaX = e.clientX - startPos.x; var deltaY = e.clientY - startPos.y; currentPos.x += deltaX; currentPos.y += deltaY; handle.style.transform = 'translate(' + currentPos.x + 'px, ' + currentPos.y + 'px)'; startPos.x = e.clientX; startPos.y = e.clientY; } }); document.addEventListener('mouseup', function(e) { isDragging = false; });
上面的代碼定義了一個變量isDragging用于記錄當前是否正在拖動。mousedown事件表示按下手柄,mousemove事件表示正在移動手柄,mouseup事件表示松開手柄。
在代碼中,使用了transform屬性將手柄移動到指定位置。
完成后,我們就可以按住手柄拖動滑塊了。