原理
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
通过div的scrollTop变动控制垂直滚动条位置。通过div的scrollLeft变动控制水平滚动条位置。
示例
<body>
//d1是外层div,带滚动条
<div id='d1' style='height:200pxwidth:100pxoverflow:autobackground:blue'>
<div style='height:500pxwidth:500pxbackground:yellow'>2222</div>
</div>
</body>
<script>
document.getElementById('d1').scrollTop=100//通过scrollTop设置滚动到100位置
document.getElementById('d1').scrollLeft=200//通过scrollTop设置滚动到200位置
</script>
1、首先需要新建一个HTML文档,这里设立一下基本的架构。
2、再新建一个CSS文件,用link关联一下HTML文档。
3、创建DIV标签,并且往里面填充内容。
4、先设定一下滚动条内框的大小。
5、用border先来查看是否有超出,这里可以看出超出了很多内容。
6、overflow-y: scrolloverflow-x: scroll加上这个样式滚动条就会出现了。
7、现在就能对轨道和滚动条进行样式的设置了。