近期在做一个H5网站,需要下拉加载更多产品列表的功能。百度搜索了好久,什么说法都有,什么插件都有。   醉了。基本上每一个能直接拿来用的。

最后发现:

1、dropload.js 插件  还可以,但是有个问题,只能单页使用比较方便。带有tab标签的不推荐使用。

2、自己百度了半天总结出来的一套:

document.addEventListener('scroll', watchScroll);

var itemIndex = 0;

var classid = 10;

var isloading = 0;//防止无限滚动加载

var page = $("#page").val();//页码

loadDataDynamic();//加载数据

$(function () {

$('.tab').bind('click', function () {// tab导航绑定点击事件

document.body.scrollTop = 0;//首先复位顶部

var $this = $(this);

itemIndex = $this.index();

$this.addClass('weui_bar_item_on c_f8').siblings('.tab').removeClass('weui_bar_item_on c_f8');//添加选中样式

$('.itme').eq(itemIndex).show().siblings('.itme').hide(); //切换显示div

classid = this.attributes.dataid.value;

page = 1;//页数复位

loadDataDynamic();

});

});

//加载数据

function loadDataDynamic() {

//先显示正在加载中

if ($("#loadingLi").length === 0)

$(".itme:visible>ul").append("

正在加载...

");

else {

$("#loadingLi").text("正在加载...").removeClass("space");

}

var loadingLi = document.getElementById("loadingLi");

var msg = "";

$.ajax({

url: "/Handler/xxx.aspx?cmd=GetGameListByClass",

type: "get",

async:false,

data: { classid: classid, page: page },

dataType: "json",

beforeSend: function () { isloading = 1; },

success: function (data) {

if (data.r) {

//这边根据自己的展示需求来 修改一下。

if (page == "1") {

// 插入数据到页面

$('.itme:visible>ul').html(decodeURIComponent(data.r));

msg = "数据已加载到底了.";

} else {

$('.itme:visible>ul').append(decodeURIComponent(data.r));

}

$("#page").val(page++);

isloading = 0;

} else {

$(".itme:visible>ul").scrollTop(document.body.scrollTop - 20);

if (page == 1) {

$(".itme:visible>ul").html("

暂无数据

");

} else {

msg = "数据已加载到底了";

}

}

$(".itme:visible>ul").append(loadingLi);

},

error: function (xmlHttpRequest, textStatus, errorThrown) {

msg = "数据加载失败!";

}, complete: function () {

if (page > 1) {

$("#loadingLi").text(msg);

} else {

$("#loadingLi").text("");

}

}

});

}

//如果滚动条滚动到页面底部,需要加载新的数据,并且显示加载提示

function watchScroll() {

if (!isScrollToPageBottom()) {

return;

}

loadDataDynamic();

}

//作为一个对象的w和h属性返回视口的尺寸

function getViewportSize(w) {

//使用指定的窗口, 如果不带参数则使用当前窗口

w = w || window;

//除了IE8及更早的版本以外,其他浏览器都能用

if (w.innerWidth != null)

return { w: w.innerWidth, h: w.innerHeight };

//对标准模式下的IE(或任意浏览器)

var d = w.document;

if (document.compatMode == "CSS1Compat")

return { w: d.documentElement.clientWidth, h: d.documentElement.clientHeight };

//对怪异模式下的浏览器

return { w: d.body.clientWidth, h: d.body.clientHeight };

}

//检测滚动条是否滚动到页面底部

function isScrollToPageBottom() {

//文档高度

var documentHeight = document.documentElement.offsetHeight;

var viewPortHeight = getViewportSize().h;

var scrollHeight = window.pageYOffset ||

document.documentElement.scrollTop ||

document.body.scrollTop || 0;

return (documentHeight - viewPortHeight - scrollHeight < 20)&& isloading == 0;//这个蛮重要的

}

写的有不足的地方可以指出来,后期优化。

效果图展示:  真实案例

参考来源 : http://www.cnblogs.com/w-wanglei/p/5863387.html

H5 页面下拉加载更多

1.html页面:

... 2.js

html下拉自动加载更多,H5页面下拉加载更多(实用版)相关推荐

  1. ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法

    ios系统微信浏览器.safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法 参考文章: (1)ios系统微信浏览器.safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法 (2) ...

  2. H5页面卡顿加载慢原因分析

    H5页面卡顿原因分析: 1.动画太多:渲染重绘占用GPU 2.页面操作导致重绘频繁 3.页面元素复杂:资源类标签太多(图像/视频/dom树太长) 4.内置webview性能太差 5.和3类似,iOS出 ...

  3. H5页面标题栏部分加载进度条0%-100%

    网页进度条能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程. 首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小.所以 ...

  4. 安卓下设置系统字体大小影响H5页面布局

    问题描述: 调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析: 因为用户调整了系统字体的大小,修改了根节点和body节点的font-siz ...

  5. Jquery 实现H5页面上拉加载更多

    在最新的H5开发项目中,需要开发上拉加载更多的功能,如何实现上拉加载更多,网上有很多插件可以实现,如:mescroll.mui.isScroll等等,最初我也是选择了使用插件,但在使用过程中发现了如果 ...

  6. java h5 上拉加载更多_移动端H5页面上拉加载更多功能实现(二)

    之前已经写过一篇关于上拉加载更多的文章,那个主要是根据滚动实现分页向后台发起请求实现.这次实现方式为后台返回所有需要加载的数据,前端这边做视觉上的分页效果.实现原理也是根据滚动距离触发加载更多的条件. ...

  7. android 下拉刷新数据,如何剥离Android页面下拉刷新、加载下一页等逻辑?

    最近碰到一个新的页面控制需求:下拉刷新如果失败,listview上面的数据需要保留,然后悲剧的发现之前写的NetFragment和ListNetFragment都不能覆盖这种逻辑,又要重写了.痛定思痛 ...

  8. 在H5页面中跳转到地图App,或者在本地App中加载的H5页面跳转到地图App,唤起App进行导航

    在H5中使用地图导航 1.腾讯地图: 2.高德地图: 3.百度地图: 1.腾讯地图: 调用方式: http://apis.map.qq.com/uri/v1/marker?marker=coord:l ...

  9. ios系统在h5页面下拉上拉会带动整个webview 出现空白

    产生原因: 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件.这个事件触发的对象是整个 webview 容器, 容器自然会被拖动,剩下的部分会成空白. 在 W3C 文档中说 to ...

最新文章

  1. 给Sqlite数据库设置密码
  2. 个人计算机用户隐私保护全接触(2)
  3. UniDAC使用教程(二):数据更新
  4. XDP/eBPF — 架构设计
  5. 2018中国国际大数据大会专属报名通道(免费)开通啦!
  6. Oracle中关于并集/交集/差集的运算
  7. golang 锁的使用
  8. 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
  9. base64与base64url编码
  10. 7.5日chinapub生日聚会
  11. Latex 的基本语法
  12. 什么是 0day 漏洞,1day 漏洞和 nday 漏洞?
  13. 《PaddlePaddle从入门到炼丹》十一——自定义图像数据集识别
  14. DyingGasp电路(掉电检测电路)设计
  15. secect语句报错expecting(,eof或;
  16. 天梯赛题目练习——高速公路超速处罚(附带测试点)
  17. CSFR(跨站请求伪造)攻击与防御
  18. 非计算机专业二级c语言,2017年计算机二级C语言基本知识
  19. 想拿高工资?Java面试资料集合,附赠课程+题库
  20. 【机器视觉】工业传统视觉和3D视觉算法

热门文章

  1. 电子传真虚拟化的优势
  2. 数字键盘输入法——崩出来的“猪”字的背后
  3. Excel空白行如何批量填充复制上一行的内容?
  4. 电大计算机专业软件工程试题,2021国家开放大学电大本科《软件工程》期末试题及答案(试卷号:1260)...
  5. 用户增长-高价值行为模型
  6. linux在没网的情况下安装libreoffice
  7. 超文本标记语言主要通过Html,11.HTML中文译为“超文本标记语言”,主要是通过HTML标记对网页中的( )等内容进行描述。...
  8. 如何对接淘宝开放平台API接口(超详细)
  9. postcss 插件_PostCSS深入研究:创建自己的插件
  10. 正弦定理c语言,高二数学正弦定理测试题