ps: 来自设计人员的灵魂需求。
设计小姐姐:我想用鼠标滚动实现此处新闻测试的翻页。
本程序员(嘴巴):好的,有可以参考的页面吗?
本程序员(内心):没听过啊,什么鬼玩意。
设计小姐姐:很简单的啦,鼠标往上滚动的时候,新闻就逐层向上翻页,翻到尽头,页面就向上滚动,同理,鼠标往下滚动的时候,新闻就逐层向下翻页,翻到尽头,页面就向下滚动。
本程序员(嘴巴):好的呢,讲的很清楚,我听懂了,应该不难。
本程序员(内心):你当那是PPT吗,还翻页,要不我给你做个动画24h循环播放。鬼知道怎么做啊。
口嫌体正,做还是得做的,正好写篇踩坑日记。
破局点在哪呢?
破局点在于变化,页面滚着滚着就不能滚了,新闻翻着翻着,页面又开始滚动了。
自信的我连忙查起了鼠标滚轮事件的资料,
MDN:developer.mozilla.org/zh-CN/docs/…
看了一会,一头雾水,好吧,是我没有自知之明了,我降低一下对自己的要求,搜搜相关滚轮事件的demo把。果然,适合我这种的还是这样的demo。
用这个demo进行了一下实验,发现只有鼠标在指定元素内,才可以进行相关的滚动操作,比如你禁用了B元素的滚轮事件,但你是由兄弟元素A(A在B元素前),你焦急地滚动了好多下,是可以直接划过B元素(那个被我们禁用了滚轮事件的元素)。
但瑕不掩瑜把,按这个思路解决的话,我们假设用户的鼠标直接在我们的B元素内,此时,我们根据当前新闻的下标和滚轮的方向来判断B元素的滚轮事件应被禁止。比如第一条新闻,向上滚动,以及最后一条新闻,向下滚动 都不应该被禁止。
踩坑痛点:
事件流、WebAPI参考接口
无论你觉得你行还是不行,你都是绝对正确的。
合影留恋~
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END