0

在使用 jquery scrollTo(awesome...) 的水平视差站点上,我正在尝试使用 windowssize 值和 scrollLeft 值来做出了解当前页面宽度的决策 - 即使调整大小。这一切都在工作。

当从左到右滚动时击中或移动某些窗口宽度时,我想最终在导航项上设置一个值,以提供指向下一个标记的路标。使用如下所示的警报/测试代码来验证我的分数是否达到了。他们是 - 如果滚动真的很慢。

关于干净可靠地捕捉这些数字的任何想法?似乎它的发射速度如此之快,以至于 jquery 只是没有得到它。或者我没有正确查看这个?

function parallaxScroll(){

    var scrolledX = $(window).scrollLeft();
    var windowsize = $(window).width();

    var win0 = 0;
    var win1 = windowsize;
    var win2 = windowsize * 2;
    var win3 = windowsize * 3;

    if (scrolledX == win1) {
        $("#test").text("mark1");
    }
    if (scrolledX == win2) {
        $("#test").text("mark2");
    }
    if (scrolledX == win3) {
        $("#test").text("mark3");
    }

}
4

1 回答 1

1

很难找到准确的尺寸。寻找尺寸,以及任何更大的东西——例如,如果win1是 100,它会在 100-199 时触发,win2如果是 200-299,则以此类推。

请注意,我还检查了从最大到最小的窗口大小(您可以将它们从最小到最大进行,然后确保更改><并添加额外检查大于win3.

另外,请制作检查if ... else if ... else语句,以免意外触发多次(win3 大于 win2,因此即使在 win3 时 win2 也会触发)。

function parallaxScroll(){

  var scrolledX = $(window).scrollLeft();
  var windowsize = $(window).width();

  var win0 = 0;
  var win1 = windowsize;
  var win2 = windowsize * 2;
  var win3 = windowsize * 2;

  if (scrolledX >= win3) {
    $("#test").text("mark3");
  }
  else if (scrolledX >= win2) {
    $("#test").text("mark2");
  }
  else {
    $("#test").text("mark1");
  }

}
于 2013-05-18T23:58:45.563 回答