sliderButton.offset()。left和event.pageX完全不同

时间:2013-04-16 12:50:38

标签: javascript jquery

所以我有一个按钮,我希望能够用鼠标左右拖动(类似于滑块)。问题是,当我在页面加载和mousedown打印出按钮的左偏移时(所以当用户点击按钮时),我得到不同的结果:

$(function() {
    var sliderButton = $('.slider-button');
    var initialLeft = sliderButton.offset().left;
    alert(initialLeft); // This returns 810
    var maximumLeft = initialLeft + 235;
    sliderButton.mousedown(function(e) {
        alert(e.pageX); // 576
        sliderButton.bind('mousemove', function(e) {
            var left = e.pageX;
            if (left >= initialLeft && left <= maximumLeft) {
                sliderButton.offset({left: left});
            }
        })
    }).bind('mouseup', function() {
        sliderButton.unbind('mousemove');
    });
});

第一个警报返回:

810

第二个:

576

在mousedown事件中,光标位于与按钮相同的位置,所以它不应该返回810吗?我没有这种行为。

0 个答案:

没有答案