2012-10-21 105 views
1

我試圖滾動到一個keydown事件2個不同的元素,在第一次按第1個要素,在第二次按下第二個元素,每2臺印刷機後重復事件綁定的keydown事件(或命中)。我創建了一個JSFiddle演示,鏈接如下。的JavaScript滾動到元素在jQuery的

FIDDLE

正如你所看到的,它不會滾動到第二按下底部構件(或打)。我唯一能想到的是除了「.offset()。top」以外的其他事情。但是,如果你的一些JS大師看我的代碼,你可能會看到錯誤或可能是另一種解決方案,以達到預期的效果。提前致謝!

.offset().top ??? 

主要BUG解決了,但新的bug透露。是有辦法的命中變量重置爲零,如果用戶點擊向上箭頭?

NO MORE BUGS!歡迎使用這個腳本所有你想!

回答

0

見的offset

定義獲取所述第一元件的當前座標集合中匹配的元素,相對於文檔的。

這裏的問題是,當你的動畫#wrap元素,它的偏移量改變, 最簡單的方法是事先得到它的位置,看到my edited JSfiddle。添加以下兩行代碼,並根據spot1/spot2執行動畫。開關箱運行良好。

var spot1 = $("#scrollToHere2").position().top; 
var spot2 = $("#scrollToHere").position().top; 
+0

的最佳解決方案,那奇妙制定。我會投票,如果我的代表升起。誰還會讀這篇文章,隨時爲我的未來網站使用我的(和fin)代碼,然後投票,這非常有用。 – Jim22150

+0

翅,有沒有什麼辦法給變量重置爲零,如果按向上鍵,如果用戶點擊UP只有點擊向下箭頭一次,而不是單擊兩次後箭頭? – Jim22150

+0

你的意思是[this](http://jsfiddle.net/finfin/XXuZG/1/)? – fin