HTML5页面中下拉加载功能怎么实现
Admin 2022-07-18 群英技术资讯 481 次浏览
如何判断滚动是否滚动到了底部?
首先要了解的知识 scrollHeight
,clientHeight
,scrollTop
scrollHeight
只读属性,高度包括所有内容,包含内边距,但不把水平滚动条、边框和外边距算在内。
clientHeight
也是只读属性,没有定义CSS
或者内联布局盒子的元素为0,它是元素内部的高度,包含内边距,不包括x轴的滚动条高度、边框、外边距;
同一种型号的手机上是不变的。
scrollTop
这个元素的顶部滚动距离(到视口(一般都是html
)的顶部的距离)。
可以实现计算到底部的距离了
计算是否到达底部原生js
element.scrollHeight - element.scrollTop === element.clientHeight
jquery
element..scrollHeight - element.scrollTop() == element.height()
实现下拉刷新
用到的是html
+jq
var loadingState = { text:false, image:false, video:false } var httpUrl2 = "https://api.apiopen.top/getJoke" var options1 = { page:1, count:10, type:"text" } var options2 = { page:1, count:10, type:"image" } var options3 = { page:1, count:10, type:"video" } //在window里获取不到options,就只能把options放在data对象里,就能用data['options'+(index+1)]获取到了 var data = { options1,options2,options3 } //请求语句所在 loadingState.text = true; textRender(options1); //监听要滑动容器的滚动事件 $('.content').scroll(function(e){ var index = $(this).index(); //获取滚动的距离 var sTop = $('.content').eq(index).scrollTop(); //获取容器的高度 var contentHeight = $('.content').eq(index).height(); //获取滚动高度 var scrollHeight = $('.content').eq(index)[0].scrollHeight; //根据所选的不同options加载不同的内容 if(index==$(this).index()&&loadingState.text!=true) { //判断是否已经滚动底 if((sTop+contentHeight)==scrollHeight){ //当到达底部是加载选项为true,之后的操作 loadingState.text = true; //内容缓慢淡出 $(this).animate({ scrollTop:sTop+80 },1000) var options = data['options'+(index+1)]; //页数加一 options.page += 1; //加载新获取的内容 textRender(options); } } } //加载实现函数 funtion textRender(obj){ //要添加的内容 if(obj == options1){ console.log(obj); $.get(httpUrl2,obj).then(function(res){ res.result.forEach(function(item,i){ var html = ` <div class="mui-card"> <div class="mui-card-header mui-card-media"> <img src="${item.header}"> <div class="mui-media-body"> ${item.name} <p>发表于 ${item.passtime}</p> </div> </div> <div class="mui-card-content"> <div class="mui-card-content-inner"> <p>${item.text}</p> </div> </div> <div class="mui-card-footer"> <a class="mui-card-link">喜欢</a> <a class="mui-card-link">评论</a> </div> </div> ` $('.content:eq(0)').append(html).css('backgroundImage',"none") loadingState.text = false; $('.loading.text').stop(true).slideUp(2000,function(){ $('.loading.text').remove() }) }) }) } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章主要的介绍了关于HTML中的视频标签html5 video标签的用法和介绍等,还有一些视频格式,在web中支持视频播放的,接下来让我们一起来看看这篇文章吧
这篇文章主要介绍了前端使用canvas生成盲水印的加密解密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
CSS中的border边框属性,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
本章给大家带来HTML5中如何使用rel属性的预加载功能?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在开发过程中,我们经常会使用到CSS滚动效果,例如表格滚动,图片滚动等等,对于一些可滚动的元素而言,想要视觉效果更好一些,通常在滚动的时候会给垂直于滚动的一侧添加一个阴影,用于表明当前有元素被滚动给该滚出了可视区域,如下图所展示一样。那么这样的效果要怎么样实现呢?
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008