在微信端开发中遇到一个这种问题:明明用的公共文件(代码以下图),其余页面每次都能触发这个滚动条$(window).scroll事件,以显示右下角“回到顶部”这个按钮图标html
可是,问题来了,最该须要使用“回到顶部”功能的列表页面时候,竟然不显示这个图标了!!!(当时我就想一句mmp不知道送给谁)。浏览器
我查看了html加载状况,嘿,加载是加载了,按要求加载的哦,一点都不缺斤少两(以下图),明晃晃的display:none送给你~微信
静态页的也是这个样子哦,滑动了滚动条才显示可爱的向上图标哦~函数
加载完数据死活不触发滚动事件(微笑^V^)spa
忘记说了,我用的是$.each去循环列表,列表没问题,不显示一个小小的图标而已(努力微笑~^V^~)htm
原本嘛,小功能,不影响大局,回头直接直愣愣显示($(“#toTop”).show())不隐藏就好了。blog
可是吧……我以为仍是须要再抢救一下,你看吧,其余页面都是滚动条离开顶部时候才显示图标的,就列表页面不懂事,如此不一致的画风,列表页也是会自卑的好吗?(不生气^U^)事件
上网查,各类各样的可能性(写错代码,初始化高度不够循环,body包不住等等),一一试着改了:初始化高度不够这个比较有意思,因此我就找这个方向改的。开发
如下是反面案例io
同事建议我添加body的高度和HTML的高度样式(height:100%)嘿!成了,图标显示了呢!
并非……
人家图标收不回去了呢,就是不触发滚动事件,就是这么傲娇(有点生气,可是仍是要保持微笑^o^)。
又一想,等列表加载完再去触发这个方法是否是可行?因而我把$(window).scroll()事件复制到加载列表的函数里面,循环完列表了就立刻加载滚动条方法!
蓝鹅……
不显示,就是不显示!(微笑……笑不出来)
放在$(function(){ 滚动事件 })……不行哦
成功案例
我想着,反正都不行了,就试一下document .scroll() (注意,这种写法是会报错的),竟然显示了,而且和我想要的效果一毛同样!!!
报错的竟然还能行!!!
情何以堪?
顺着这条线,我把公共文件里的代码改了:把$(window).scroll()改为document.scroll()
全面报错,手动再见。
我也知道这样写不对啊,因而改公共方法:改为$(document).scroll()
不报错,全部页面都不显示向上按钮了。再见,以死谢罪……
这样吧,公共方法咱不改,用着$(window).scroll(),在列表加载完成后再放一个$(document).scroll(),反正列表页不触发$(window).scroll(),应该问题不大。
竟然成功了……
论:$(window).scroll()与$(document).scroll()的区别
说好的区别不大而且$(window).scroll()兼容各大浏览器呢?
我读书少,是被谁骗了么!!!!!