jQuery UI Slider 是一个可拖动的滑块控件,允许用户通过拖动手柄在指定范围内选择值。垂直滑块是其中一种方向设置,自定义手柄则是指替换默认的手柄样式。
手柄无法移动可能有以下几种原因:
首先确保基本的垂直滑块能正常工作:
$("#slider").slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 60,
slide: function(event, ui) {
$("#amount").val(ui.value);
}
});
$("#slider").slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 60,
create: function() {
// 移除默认手柄
$(".ui-slider-handle", this).remove();
// 添加自定义手柄
var handle = $('<div class="custom-handle"></div>')
.appendTo(this);
// 确保自定义手柄有正确的类
handle.addClass("ui-slider-handle");
},
slide: function(event, ui) {
$("#amount").val(ui.value);
}
});
#slider {
height: 200px;
margin: 20px;
position: relative;
}
.custom-handle {
width: 30px;
height: 30px;
background: #456;
border-radius: 50%;
cursor: pointer;
position: absolute;
left: -10px;
margin-top: -15px;
z-index: 2;
}
.ui-slider-vertical .ui-slider-range {
width: 100%;
}
.ui-slider-vertical .ui-slider-handle {
margin-left: -10px;
}
ui-slider-handle
类:<!DOCTYPE html>
<html>
<head>
<title>自定义垂直滑块</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<style>
#slider {
height: 200px;
margin: 20px;
position: relative;
background: #ddd;
}
.custom-handle {
width: 30px;
height: 30px;
background: #456;
border-radius: 50%;
cursor: pointer;
position: absolute;
left: -10px;
margin-top: -15px;
z-index: 2;
}
.ui-slider-vertical .ui-slider-range {
width: 100%;
background: #7ab;
}
.ui-slider-vertical .ui-slider-handle {
margin-left: -10px;
}
</style>
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<div id="slider"></div>
<p>当前值: <span id="amount">60</span></p>
<script>
$(function() {
$("#slider").slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 60,
create: function() {
$(".ui-slider-handle", this).remove();
var handle = $('<div class="custom-handle"></div>')
.appendTo(this)
.addClass("ui-slider-handle");
},
slide: function(event, ui) {
$("#amount").text(ui.value);
}
});
});
</script>
</body>
</html>
自定义垂直滑块可用于:
通过以上方法,您应该能够解决自定义手柄无法移动的问题。如果仍有问题,请检查浏览器控制台是否有错误信息,并确保所有依赖库已正确加载。
没有搜到相关的文章