将jquery mousemove事件约束到Y.

时间:2012-02-03 16:19:56

标签: jquery

我正在构建一个自定义滚动条,到目前为止它已经控制了div的滚动,如下所示:

var howfar = 0;
$('#scroller').mousedown(function() {

    $(this).mousemove(function(e){

        howfar += 1;
        $('#resumebox').scrollTop(howfar);
    })
});

这显然是在x或y移动时激活的,我怎么能约束所以它只适用于Y?

感谢。

1 个答案:

答案 0 :(得分:0)

如何计算鼠标在Y轴上的移动量并使用该值?

$('#scroller').mousedown(function(e) {

    var startMouseY = e.pageY;
    var currentScrollPosition = $('#resumebox').scrollTop();

    $(this).mousemove(function(e){

        var howfar = currentScrollPosition + e.pageY - startMouseY;
        $('#resumebox').scrollTop(howfar);

    });
});

我没有测试过这个,但它看起来很简单。您只需要获取要滚动的div的当前scrollTop值,然后计算mousedown的Y位置和mousemove的当前Y位置之间的差值,然后将其添加到div的scrollTop位置。