2010-10-13 62 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");