在微信端开发中遇到一个这种问题:明明用的公共文件(代码如下图),其他页面每次都能触发这个滚动条$(window).scroll事件,以显示右下角“回到顶部”这个按钮图标

但是,问题来了,最该需要使用“回到顶部”功能的列表页面时候,居然不显示这个图标了!!!(当时我就想一句mmp不知道送给谁)。

  我查看了html加载情况,嘿,加载是加载了,按要求加载的哦,一点都不缺斤少两(如下图),明晃晃的display:none送给你~

静态页的也是这个样子哦,滑动了滚动条才显示可爱的向上图标哦~

  加载完数据死活不触发滚动事件(微笑^V^)

  忘记说了,我用的是$.each去循环列表,列表没问题,不显示一个小小的图标而已(努力微笑~^V^~)

  本来嘛,小功能,不影响大局,回头直接直愣愣显示($(“#toTop”).show())不隐藏就行了。

  但是吧……我觉得还是需要再抢救一下,你看吧,其他页面都是滚动条离开顶部时候才显示图标的,就列表页面不懂事,如此不一致的画风,列表页也是会自卑的好吗?(不生气^U^)

上网查,各种各样的可能性(写错代码,初始化高度不够循环,body包不住等等),一一试着改了:初始化高度不够这个比较有意思,所以我就找这个方向改的。

以下是反面案例

  同事建议我添加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()兼容各大浏览器呢?

我读书少,是被谁骗了么!!!!!

随机推荐

  1. Java多线程之synchronized及其优化

    Synchronized和同步阻塞synchronized是jvm提供的同步和锁机制,与之对应的是jdk层面的J.U.C提供的基于AbstractQueuedSynchronizer的并发组件.syn ...

  2. Oracle数据库TNS错误解决方法

    ORA-12154: TNS:could not resolve the connect identifier specified ,即无法解析指定的连接 标识符.这说明缺少了一个环境变量,TNS_A ...

  3. (一)java异常处理的几个问题

    1.java中两种异常? 答:java中存在两种异常:受检查(checked)异常和不受检查(unchecked)异常.不受检查的异常不需要在方法或者构造函数上声明,就算是方法或是构造函数会发生这样的 ...

  4. Android 访问地址

    private String url_data = "https://api.douban.com/v2/movie/top250?start=0&count=10"; 免 ...

  5. Python序列的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 序列,顾名思义,是一段数据的有序排列,列表,元组,字符串都是序列的一种,序列有很多BIF(BIF是内建方法,即python ...

  6. Git通过密钥对远程仓库上传和更新详细操作

    1,先到ssh中ls查看之前本地生成的公钥和私钥,然后将别人的密钥替换掉自己的密钥,这里我把别人的密钥放在d:/desktop/id_rsa 中,利用cp /D/Desktop/id_rsa  id_ ...

  7. windows中obs源码编译的坑

    好用的版本: cmake-3.6.1-win64-x64  +  vs2015  + qt-opensource-windows-x86-msvc2015_64-5.7.0   +   obs-stu ...

  8. python 函数返回值(总结)

    关键字:return 没有返回值的叫过程 def test1(): msg="我是一个过程" print(msg) 有return的叫函数 def test02(): msg=&q ...

  9. CNN

    <卷积神经网络详述> <卷积神经网络——雨石博客>      学习参考:http://blog.csdn.net/stdcoutzyx/article/details/4159 ...

  10. fdisk语法

    Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法: 对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/de ...