我正在尝试创建一个类似于:
的滑块http://jqueryui.com/demos/slider/
基本上这个想法与演示中的基本滑块非常相似,只是在用鼠标滑动抓取的手柄中,当你到达某些点时会改变数字。我想我可以弄清楚数字部分,但我完全坚持如何开始。
我想用jquery从头开始做...所以没有插件。如果有人知道任何教程,或者某个地方我可以开始那将是非常棒的。
由于
答案 0 :(得分:3)
取决于。如果您想了解这些知识,我建议您查看jQuery UI source code;)
如果你想这样做,因为jQuery UI太“重”,那么仅供参考,你可以customise which parts of it you download/use.
答案 1 :(得分:1)
这就是我所拥有的,并且有效。
//sets the current position and offset variables
var currentPosition;
var offset;
var rightOffset
//looks for the mousedown event on the slider
$("#slider").mousedown(function(e){
//sets the offset = to the mouse coordinate of the page - the offset of the slider
offset = e.pageX - this.offsetLeft;
console.log("offset: " + offset);
$(document).bind('mousemove', mmHandler);
});
var mmHandler = function (e) {
currentPosition = e.pageX - offset;
//takes the mouse current position (minues the offset) and sets an absolute position
$('#slider').css('left', currentPosition + "px");
console.log("CURRENT POSITION: " + currentPosition);
//checks to make sure it's within the box
if(currentPosition <= 0){
$('#slider').css('left', 0 + "px");
}else if(currentPosition >= 380){
$('#slider').css('left', 400-20 + "px");
}
$("#slider").text($("#slider").css('left'));
};
$(document).mouseup(function(e) {
$(document).unbind('mousemove', mmHandler);
});