原理
1.通过监听滚动区域DOM的scroll事件, 计算出触底
// 滚动可视区域高度 + 当前滚动位置 === 整个滚动高度
scrollDom.clientHeight + scrollDom.scrollTop === scrollDom.scrollHeight
2.触底后触发列表添加, 列表添加使用createDocumentFragment, 将多次插入的DOM先存入内存, 最后一次填充进去, 提高性能, 也方便后面的MutationObserver监听
3.使用MutationObserver监听列表的DOM添加, 添加完毕后, 隐藏加载中提示
示例
https://codepen.io/klren0312/full/dybgayL
参考资料
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/clientHeight
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollHeight
https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollTop
https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers/onscroll
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createDocumentFragment
https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver
不想给你写,我就给你说原理吧,用第一个按钮给个onclick=fun1() 第二个给onclick=fun2()然后写着两个函数,fun1中的ajax调用的sql语句加limit 10,fun2 中ajax不加limit不就完了
对了ajax不能传数组的,所以你先要把数组转化成字符串,什么格式你自己看着办,都支持
用ajax 就可以了,点击加载更多时候,触发事件,发送ajax请求到php ,php 将数据发送回ajax 回调函数里面,然后用js 追加到你页面的后面就可以了$.ajax({
type: "post",采用post 参数
url: "/index.php?m=member&c=index&a=public_up", //请求的php 函数
data: {id:$rid,table:$table}, //传递的参数
dataType: 'json', //返回值以json格式返回
success: function(data) { //回调函数,在这里将data里面的数据追加到页面就可以了
}
})