jQuery scrollLeft无法正常工作

时间:2010-10-13 23:22:47

标签: javascript jquery scroll

我刚刚推出http://elliewauters.com&有一个我想修复的问题,该网站使用了很多动画水平滚动从一个'页面'到下一个,但刷新大多数浏览器时记住滚动位置和放大器。回到我以前的地方,我不想要这个。尝试进入“关于”页面&然后刷新。你会看到徽标&菜单位于页面中间,就像您第一次到达网站时一样。

我想要帮助解决以下两个问题:

  1. 要在页面刷新时将滚动位置重置为0,0或
  2. 移动徽标&如果scrollLeft值大于1,则菜单位于顶部。
  3. 我尝试使用$(window).scrollLeft(0);无效且无效

    scrollLeft = $(window).scrollLeft();
    console.log(scrollLeft)
    if (scrollLeft>1) {
        $('#header').addClass('notLeft').css('top','0%');
    } else {
        $('#header').addClass('left').css('top','25%');
    }
    

    不起作用,是否有人知道如何实现我的目标?

    提前致谢

3 个答案:

答案 0 :(得分:6)

由于console.log(scrollLeft),Firefox无法正常工作,因此删除后应该可以正常工作。至于你遇到的问题,我猜它只发生在IE?解决方案是不使用$(window),而是将其替换为$(document)。所以使用:

scrollLeft = $(document).scrollLeft();

答案 1 :(得分:2)

我知道这是一个旧线程,但jQuery中的.scrollLeft()在Android上也不适合我,今天在jQuery 1.9.1(2013年4月)。试试这个:

window.scrollTo(x, y);

这适用于所有最近的平台和操作系统,包括Android手机。

答案 2 :(得分:1)

$("#el").animate({ scrollLeft:110 }, "fast");