为了账号安全,请及时绑定邮箱和手机立即绑定

if (area.scrollTop >= area.scrollHeight/2 ) { area.scrollTop = 0; }

不是很能理解为什么>= area.scrollHeight/2 且area.scrollTop=0就可以无缝了。

正在回答

1 回答

首先你的考虑无缝滚动的原理,就是复制一个一样的接着上一个滚动,然后再明白scrollTop(被卷去的高度)和scrollHeight(区域高度),区域里有两个ul他们等高并且刚好把区域高度划分为两半(area.scrollHeight/2),只要第一个滚到看不见了(area.scrollTop >= area.scrollHeight/2),就可以把第一个拉回到最底下(area.scrollTop=0)。不知道这样的解释你能明白吗


0 回复 有任何疑惑可以回复我~
#1

其实TAMA酱不是我名字 提问者

能明白。。但是还是不太理解为什么把第一个拉回到最底下而不是直接覆盖掉还没有滚完的第二个部分。。。
2016-04-09 回复 有任何疑惑可以回复我~
#2

飞飞赫赫 回复 其实TAMA酱不是我名字 提问者

忘记看慕课回复了。不知道你现在明白没。因为如果直接把第一个覆盖第二个,会出现很不好的用户体验,因为假如你看见的滚动区域为100px高,需要滚动的文字div有150px高,当文字滚完100px,只剩下50px时,后面不就出现了50px空白了,所以要复制一个div填补这50px空白。第一个div当滚完150px时,第二个div正好也滚完100px,还剩50px,这时把第一个div拉到最底下的好处就出现了,第一个div可以接着第二个div滚动。
2016-04-27 回复 有任何疑惑可以回复我~
#3

其实TAMA酱不是我名字 提问者

非常感谢!
2016-04-27 回复 有任何疑惑可以回复我~
#4

飞飞赫赫 回复 其实TAMA酱不是我名字 提问者

客气了。一起加油!学习
2016-05-07 回复 有任何疑惑可以回复我~
#5

P妞酱酱 回复 飞飞赫赫

area.scrollTop=0不就是覆盖掉第二个了吗,为啥是拉回到最底下?
2016-05-22 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
信息滚动效果制作
  • 参与学习       47751    人
  • 解答问题       321    个

萌妹子带您快速学习滚动效果,掌握无缝滚动和歇间性滚动的制作方法

进入课程

if (area.scrollTop >= area.scrollHeight/2 ) { area.scrollTop = 0; }

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信