1. 第一次采用了距离顶部距离的方式来控制上拉加载
 $(window).scroll(function () {// 滚动条距离顶部的距离 大于 200px时if ($(window).scrollTop() >= nowPageNo * (nowPageNo * 100)) {console.log('距离大于200')console.log(stopPage)if (stopPage == true) {return;} else {nowPageNo += 1getDataList()}} else {return;}});

nowPageNo 为当前页码,stopPage为停止请求,当发出请求之后,stopPage应该变更为true,在结果返回之前不应该再次进行请求。
主要利用浏览器滚动时,滚动条距离顶部的距离来判断,一页展现的量是固定的,这个就是需要根据自己的需求来设定不同的距离,以达到刚好的效果。

  1. 采用了浏览器视窗距离固定值来触发上拉加载
        $(window).scroll(function () {let clientHeight = document.documentElement.clientHeight; //浏览器视口的高度let scrollHeight = document.body.scrollHeight; //文档的总高度let scrollTop = document.documentElement.scrollTop; //滚动条在Y轴上的滚动距离let distance = 50;  //距离视窗还用50的时候,开始触发;if (scrollHeight-scrollTop-clientHeight <= distance) {console.log('触发加载')console.log(stopPage)if (stopPage == true) {return;} else {pageNo += 1init()stopPage = true}}});

这个思想倒是不难理解 ,总高度去掉滚动距离,去掉视口高度,小于你所设置的距视窗距离,就触发上拉加载。
这种写法倒是比第一种要更好理解一些。

其中存在的问题

笔者在采用这个写法来写H5界面时候,遇到了一个奇怪问题,我在测试这个上拉加载的时候使用的是电脑上浏览器进行测试的,结果是不存在任何问题的,上拉加载很符合要求,并且测试在测试的时候也没有任何问题,然后我们就正常上线啦,没几天就反馈出现了问题。
在安卓手机上,使用微信打开该界面,可以正常滚动,但是不能触发上拉加载,但是使用浏览器打开,也是正常的,同时在ios上也是不存在任何问题。这个问题的产生让我陷入了沉思,mmp,什么玩意?????
在对微信的一通埋怨之后,我又再次着手对其逻辑进行了判断,发现逻辑上应该是没有问题的。那么剩下来的就只有兼容性这个问题啦,明确了方向就只能摸索看看是哪里出现了问题。
能滚动没触发上拉加载,说明进行判断的时候有问题了,于时我直接对这三个值进行逐一判断,是否有值,这么一排查,于是就发现了问题:在微信上打开的界面不能用document.documentElement.scrollTop获取到滚动距离,好家伙,有点东西了。
于时我采用
$(window).scrollTop()

来获取滚动距离,这个时候就没有什么问题了,百度了一下,二者的效果是一样的,$(window).scrollTop()有更好的兼容性。
所以如果有人遇到这样的问题,就不用费心思去想啦
随手点赞,养成好习惯

H5上拉加载以及在微信内置浏览器上拉加载失效问题记录相关推荐

  1. 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...

    大家可能会遇到开发公众号的时候,下来会出来源地址,下面的代码可以解决禁止下拉的问题~ 禁止下拉 .scroll{ position:absolute; overflow:scroll; -webkit ...

  2. window客户端-微信内置浏览器-公众号H5-打开白屏

    原文链接:https://dsx2016.com/?p=1154 公众号:大师兄2016 问题场景 在window上客户端微信打开公众号H5网页,内置浏览器白屏 一些基本的关联 上一个版本是可以正常登 ...

  3. 使用Chrome调试微信内置浏览器

    微信现在采用的X5内核基于Chrome,我们可以通过Chrome调试微信内置浏览器. 在开始之前,需要准备一台带有Chrome浏览器的电脑,PC和Mac均可,然后需要一部安装有微信的Android手机 ...

  4. php h5页面微信登录页面,客户端,微信内置浏览器加载H5页面字体变大问题

    在开发当中呢,经常会有很多H5的小活动页面,需要在微信的环境下使用.偶尔会出现H5页面在微信或者其他客户端中出现字体变大的问题,下面提供解决方法. 首先先把网页自动放大放小的关掉. 安卓解决微信内置浏 ...

  5. html5 微信返回按钮,《解决微信内置浏览器返回上一页强制刷新问题方法》(示例代码)...

    微信内置浏览器在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验.而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的 ...

  6. 微信android返回上一页位置,解决微信内置浏览器返回上一页强制刷新问题方法...

    微信内置浏览器在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验.而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的 ...

  7. weixin公众号页面返回上一层_《解决微信内置浏览器返回上一页强制刷新问题方法》...

    微信内置浏览器在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验.而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的 ...

  8. 微信内置浏览器调试和调试微信内的H5页面汇总(持续更新...)

    调试PC端微信内置浏览器(只支持3.2.1以下的) (1)添加以下代码, 查看chrome版本和内核安放位置 <html><script type="text/javasc ...

  9. CocosCreator H5 微信内置浏览器调起微信支付

    CocosCreator H5 微信内置浏览器调起微信支付 先来看看效果图 微信公众平台相关文档传送门https://mp.weixin.qq.com/wiki?t=resource/res_main ...

最新文章

  1. ABP理论学习之授权(Authorization)
  2. oracle撤销管理的方法,Oracle9i中利用自动撤销管理的优点
  3. 用泛型来实现编译时期的类型推断
  4. Android学习建议
  5. 几个有趣的Javascript Hack
  6. 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua
  7. java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl解决办法
  8. java季度第一天_Java得到年在一个季度的错误的第一天
  9. jsp页面运行的步骤以及原理
  10. django 实现同一个ip十分钟内只能注册一次
  11. 如何用bat批处理编译swf项目
  12. java将时间戳转换成字符串_java 时间戳与日期字符串相互转换详解
  13. 4237. 【五校联考5day1】Melancholy (Standard IO)
  14. [USACO09DEC]视频游戏的麻烦Video Game Troubles(DP)
  15. C#读取txt 乱码问题的解决方案
  16. 各大银行网银转账手续费一览表
  17. wireshark抓rtsp rtp rtcp包手把手教你分析包结构 H264 H265
  18. ActivityManagerService解读之Activity启动初探
  19. 自动化运维之自动化监控
  20. 对接阿里云平台短信接口

热门文章

  1. 分享自己做的一个词典小软件
  2. ibm ds5020 for aix storage manager .
  3. MMDetection2.17-权重模型转推理模型(pth转onnx)详细步骤及前向推理(Win10、Linux均适用)
  4. 中兴网络设备交换机路由器查看MAC地址表项命令方法
  5. 超级牛逼,用python制作全国身份证号验证及查询系统
  6. 体系|一文读懂生产质量管理规范现场检查指导原则-机构和人员
  7. stata进行空间计量分析
  8. 计算机专业树立职业理想,对理想职业的要求
  9. 如何用正则化防止模型过拟合?
  10. Benji Bananas 与 ApeCoin 一起迈向边玩边赚