jQuery 拖动进度条是一种常见的用户界面交互功能,允许用户通过拖动滑块来选择一个范围内的值。这种功能通常用于音量控制、视频播放进度、表单输入等多种场景。
以下是一个简单的 jQuery 拖动进度条的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery 拖动进度条</title>
<style>
#slider {
width: 300px;
height: 20px;
background: #ddd;
position: relative;
}
#handle {
width: 20px;
height: 20px;
background: #007bff;
position: absolute;
top: 0;
left: 0;
cursor: pointer;
}
</style>
</head>
<body>
<div id="slider">
<div id="handle"></div>
</div>
<p>当前值: <span id="value">0</span></p>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
var handle = $('#handle');
var valueDisplay = $('#value');
var sliderWidth = $('#slider').width();
var minValue = 0;
var maxValue = 100;
handle.on('mousedown', function(e) {
e.preventDefault();
$(document).on('mousemove', function(e) {
var offsetX = e.pageX - $('#slider').offset().left;
if (offsetX < 0) offsetX = 0;
if (offsetX > sliderWidth) offsetX = sliderWidth;
var percentage = (offsetX / sliderWidth) * 100;
handle.css('left', offsetX + 'px');
valueDisplay.text(Math.round((percentage / 100) * (maxValue - minValue) + minValue));
});
});
$(document).on('mouseup', function() {
$(document).off('mousemove');
});
});
</script>
</body>
</html>
requestAnimationFrame
来优化动画效果,减少重绘和回流。通过以上方法和示例代码,你可以实现一个功能完善且用户体验良好的 jQuery 拖动进度条。
领取专属 10元无门槛券
手把手带您无忧上云