在微信端开发中遇到一个这种问题:明明用的公共文件(代码如下图),其他页面每次都能触发这个滚动条$(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. win10电脑安装win7

    1.进入BIOS,关闭“Secure Boot”功能,启用传统的“Legacy Boot”.预装WIN8的系统想要更换WIN7系统首先需要修改BIOS设置.BIOS设置方法:F2进入BIOS,选择se ...

  2. 给listview加动画,让动画执行结束后再刷新

    问题:当给listview的条目加动画时,例如添加一个条目或者移除一个条目,动画效果会和添加删除条目的逻辑同时进行,因为动画并不是阻塞式的,这样会造成动画还没有结束,条目已经添加或者移除,从而动画作用 ...

  3. webclient上传数据到ashx服务

    1.上传参数 UploadData()方法可以上传数据参数,需要将所要上传的数据拼成字符. // 创建一个新的 WebClient 实例.    WebClient myWebClient = new ...

  4. nginx之location的匹配规则

    nginx之location的匹配规则 一.语法规则 location [=|~|~*|^~] /uri/ { - } 符号 含义 = 开头表示精确匹配 ^~ 开头表示 uri 以某个常规字符串开头 ...

  5. fastreport窗口重置(适用于属性、数据等窗口显示不出来)

    找到如下路径: C:/Users/账户名/AppData/Local/FastReport/FastReport.config 删除即可. 记得先退出使用FastReport的程序,再删除

  6. 第一周嵌入式程序设计(linux环境下)的学习总结

    2014025641 <嵌入式程序设计>第1周学习总结 本周学习内容 首先我们先复习下之前学习过的内容,什么是linux? Linux 就是一个操作系统,就像你多少已经了解的 Window ...

  7. Quartz 2.2 动态添加、修改和删除定时任务

    QuartzManager.Java 动态添加.修改和删除定时任务管理类 import org.quartz.CronScheduleBuilder; import org.quartz.CronTr ...

  8. MSBuild 命令参数

    Build a Visual Studio project or solution using MSBuild Command Line Arguments  常用命令行参数 详解: MSBuild ...

  9. L342 Air Pollution Is Doing More Than Just Slowly Killing Us

    Air Pollution Is Doing More Than Just Slowly Killing Us In the future, the authorities might need to ...

  10. VBA中查找并选定文字

    如果从 Selection 对象访问 Find 对象,当找到搜索条件时,就会更改所选内容.下列示例选定下一个出现的“Hello”.如果到达文档结尾时仍未找到“Hello”,则停止搜索. With Se ...