2010-10-13 65 views
3

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

我想帮助,无论是两件事情:

  1. 重置回滚动位置0,0页刷新或
  2. 要移动的标志&菜单,如果顶部scrollLeft值大于1。

我已经使用$(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%'); 
} 

不起作用,请问有没有人有我想要达到我想要的想法?

在此先感谢

+0

只是一个想法: 我不知道这是否会工作,但你可以尝试抓住这个“刷新”在onleave并在该点重置呢? – Vinzenz 2010-10-13 23:38:04

+0

标题在Firefox中完全不会移动。 – Mottie 2010-10-14 03:11:45

回答

6

那么火狐是不是因为console.log(scrollLeft)的工作,所以应该移除后工作。至于你遇到的问题,我猜它只发生在IE?解决方案是不使用$(window),而是用$(document)替换它。因此,使用:

scrollLeft = $(document).scrollLeft(); 
+0

我保留了console.log,但添加了一个分号到末尾,我误以为省略了。更改为'$(文档)'会使所有的工作,但只有在Firefox,任何想法,为什么它不起作用的WebKit? – Zander 2010-10-15 00:50:15

+0

不确定,但'console.log'只在firebug正在工作时才有效......尝试彻底删除它然后测试。 – Mottie 2010-10-15 01:10:20

2

我知道这是一个古老的线程,但.scrollLeft()jQuery中并没有为我在Android 1.9.1今日(四月,2013)的工作,也jQuery的下。试试这个:

window.scrollTo(x, y); 

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

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