HTML5页面中下拉加载功能怎么实现
Admin 2022-07-18 群英技术资讯 574 次浏览
如何判断滚动是否滚动到了底部?
首先要了解的知识 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溢出机制探究,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
word-spacing属性用于设置HTML页面中标签或单词之间的距离。该属性对英语有效,但对中文无效。word-spacing属性值有三种类型,Normal、长度值和百分比。
这篇文章主要介绍了css实现可控虚线的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
在css中,可用border属性做直角梯形,语法为“元素{border:0px solid transparent;border-top:梯形高度 solid 颜色;border-left:梯形长度 solid transparent}”。
第一点,和我的相符,但我把它改成了position:absolute,问题依然存在。第二点、第三点和我的情况不符。接着就是一层一层地追,发现把这个层(A)比较高一级的父层(B)加上position:relative;z-index:100;就好了,原来是B层比与相邻的层(C)低了,导致B层里的任何一层无论怎么设z-index,也高不过与B层相邻的那个C层。第 ...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008