コードを最小限に抑えるために jQuery や別のライブラリの使用を避けたいのですが、必要な機能はほとんどありません。ユーザーが一番下までスクロールしたときにリストに追加したいだけです。プレーンなJavascriptでこれを行うにはどうすればよいですか?
41113 次
7 に答える
16
基本的には、イベント スクロールをフックし、ユーザーが十分にスクロールしたかどうかを確認し、そうであればコンテンツを追加するだけです。
<html><body>
<div id="test">scroll to understand</div>
<div id="wrapper" style="height: 400px; overflow: auto;">
<div id="content"> </div>
</div>
<script language="JavaScript">
// we will add this content, replace for anything you want to add
var more = '<div style="height: 1000px; background: #EEE;"></div>';
var wrapper = document.getElementById("wrapper");
var content = document.getElementById("content");
var test = document.getElementById("test");
content.innerHTML = more;
// cross browser addEvent, today you can safely use just addEventListener
function addEvent(obj,ev,fn) {
if(obj.addEventListener) obj.addEventListener(ev,fn,false);
else if(obj.attachEvent) obj.attachEvent("on"+ev,fn);
}
// this is the scroll event handler
function scroller() {
// print relevant scroll info
test.innerHTML = wrapper.scrollTop+"+"+wrapper.offsetHeight+"+100>"+content.offsetHeight;
// add more contents if user scrolled down enough
if(wrapper.scrollTop+wrapper.offsetHeight+100>content.offsetHeight) {
content.innerHTML+= more;
}
}
// hook the scroll handler to scroll event
addEvent(wrapper,"scroll",scroller);
</script>
</body></html>
于 2011-06-23T16:37:38.670 に答える
1
domElem.addEventListener(
'scroll',
function(evt) { ... },
false
);
evt/scroll 位置を適切に処理します。
于 2011-06-23T16:36:47.943 に答える