我有一个列表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