我有一個列表10個元素,5秒後元素開始被一個接一個地突出顯示,而前一個元素沒有被突出顯示。當highlighing達到從開始時開始的最後一個元素。 突出顯示是通過向元素添加選定的ID來完成的。 我已經完成,直到這一點。javascript animate-ScrollTop隨機工作
列表中只有3個元素可見,其餘的元素需要滾動到。 這是越來越棘手的地方。我已經使用:
scrollToSelected: =>
nav = $("#selected")
if nav.length
$(@el).animate
scrollTop: nav.offset().top
, 1000
這個腳本是做滾動,但並不如預期,它隨機滾動上下只是因爲它沒有知道項目的頂部。 問題在哪裏?
我曾嘗試在控制檯輸出.offset().top
值,所以結果是這樣的:
171
-627
731
-19
1131
-891
419
-299
1011
101
-891
419
-299
1011
101
-891
419
-299
1011
101
-891
419
-299
1011
101
-891
419
-299
1011
101
-891
419
-299
196.5
248.5
492.5
512.5
612.5
-414.5
任何thougths?
編輯: 改變偏移位置後,我得到這些值: 這些一個都沒有如此瘋狂的是,它不滾動如預期3-4th元素之後選定一個是波紋管可視那些
某處10
164
174
328
322
476
486
624
634
772
798
936
950
1100
1098
-1088
該列表是否在一個'overflow:hidden' div或html頁面的直接孩子? – 2014-10-16 13:24:04
它在溢出內的列表:hidden並且列表的內容也由javascript呈現 – LogofaT 2014-10-16 13:31:29
嘗試使用'nav.position().top'而不是'nav.offset().top',後者給出了相對於該文件。但是,這仍然不能解釋野值,除非你同時滾動頁面 – 2014-10-16 13:32:52