使用鼠标创建一个滑块,从头开始使用jquery

时间:2011-04-28 19:01:37

标签: jquery html css slider

我正在尝试创建一个类似于:

的滑块

http://jqueryui.com/demos/slider/

基本上这个想法与演示中的基本滑块非常相似,只是在用鼠标滑动抓取的手柄中,当你到达某些点时会改变数字。我想我可以弄清楚数字部分,但我完全坚持如何开始。

我想用jquery从头开始做...所以没有插件。如果有人知道任何教程,或者某个地方我可以开始那将是非常棒的。

由于

2 个答案:

答案 0 :(得分:3)

取决于。如果您想了解这些知识,我建议您查看jQuery UI source code;)

如果你想这样做,因为jQuery UI太“重”,那么仅供参考,你可以customise which parts of it you download/use.

修改

尝试:https://developer.mozilla.org/en/DragDrop/Drag_and_Drop

答案 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);
    });