mr_*_*ond 5 html javascript css scroll
有一个无限滚动到底部的示例。
var $ol = document.querySelector("ol");
function load_more() {
var html = "";
for (var i = 0; i < 5; i++) html += '<li></li>';
$ol.innerHTML += html;
}
$ol.addEventListener("scroll", function() {
if ($ol.scrollHeight - $ol.scrollTop === $ol.clientHeight)
load_more();
});Run Code Online (Sandbox Code Playgroud)
<ol>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
Run Code Online (Sandbox Code Playgroud)
有一个jsfiddle 示例
我如何像这样无限滚动,但要使用js?
您可以检查$ol.scrollTop === 0是否ol滚动到顶部。当位于最上面位置时,scollTop 始终为 0。
还更改了 loadMore 函数,以便它将新元素附加到元素的开头$ol.prepend(document.createElement('li'))
最后,我$ol.scrollTop = firstEl.offsetTop;在 loadmore 函数中添加了自动滚动到之前是第一个元素的元素。
我反转了你的OL,这样更容易看到新项目已加载。这当然不是必要的。
var $ol = document.querySelector("ol");
//Call this function onload so new content gets loaded and scrolling upwards become available.
load_more();
//Add event listner that triggers function when the element is scrolled to the top.
$ol.addEventListener("scroll", function() {
if ($ol.scrollTop === 0)
load_more();
});
//Load more items.
function load_more() {
//Get the current first element.
var firstEl = $ol.firstElementChild;
//prepend the new elements.
for (var i = 0; i < 5; i++) {
$ol.prepend(document.createElement('li'))
}
//scroll to the previous first element.
$ol.scrollTop = firstEl.offsetTop;
}Run Code Online (Sandbox Code Playgroud)
ol {
height: 100px;
overflow: scroll;
}Run Code Online (Sandbox Code Playgroud)
<ol reversed>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |