5

我有一个具有固定位置的元素,但能够使用我在 JsFiddle 上的这个示例中使用的 jQuery 计算来左右滚动。

$(window).scroll(function(event) {
var x = 0 - $(this).scrollLeft();
var y = $(this).scrollTop();

// whether that's below the form
if (y >= top) {
    // if so, ad the fixed class
    $('.scroll_fixed').addClass('fixed');
} else {
    // otherwise remove it
    $('.scroll_fixed').removeClass('fixed');
}

$(".scroll_fixed").offset({
    left: x + leftInit
});

});

该解决方案运行良好,直到我必须向左滚动,其中滚动的元素与文档的其余部分产生“视差” - 即,它的滚动速度大约是文档其余部分的两倍。

我知道这是 jQuery 计算的问题,但想知道以前是否有人遇到过这个问题?如果是这样,你是如何解决的?我有点不知所措......

编辑

问题已解决 - 这是因为代码使用了 $(window).scrollLeft(); 而不是我希望操作的元素范围内的父元素。

包装器 div 被归类为“wrapperDiv”,所以我使用了 $(".wrapperDiv").scrollLeft();

我会将这个问题标记为已问,但由于我是 Stack Overflow 的新手,我无法再回答 7 个小时......

4

1 回答 1

0

只是将此问题标记为已回答:

“这是因为代码在$(window).scrollLeft();我希望操作的元素范围内使用而不是父元素。包装器 div 被归类为“wrapperDiv”,所以我使用了$(".wrapperDiv").scrollLeft();

于 2014-10-14T11:10:14.637 回答