HTML5页面中下拉加载功能怎么实现
Admin 2022-07-18 群英技术资讯 712 次浏览
如何判断滚动是否滚动到了底部?
首先要了解的知识 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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css中“::before”的意思是“在...之前”,是一个伪类元素,用于创建一个伪元素,并将其设置为选中元素的第一个子元素,插入到元素的其他内容之前,语法为“element::before{样式代码}”。
这篇文章主要介绍了canvas绘制图片drawImage使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章给大家分享一个CSS3实现钮动画的效果的示例,实现效果是鼠标经过有按钮动画的效果。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
本文主要给大家介绍的是css中text-overflow属性与文本截断的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008