0

div の下部に到達する前にデータをロードし続けることができる動的スクロールを div に作成しようとしています。コードがまったく実行されていないため、私は耳の後ろでかなり濡れており、これを正しい方法で見ているかどうか確信が持てません。どんなガイダンスでも大歓迎です

function  yHandler (){
    var movelist = document.getElementById('movelist');
    //turning div into an object
    var contentHeight = movelist.offsetHeight;
    //gets page content height, this so you know how much vetical pixel height you
    //have on the page
    var yOffset = movelist.pageYoffset;
    //get vertical scroll position, lets you know where the user is in their scroll
    //postion
    var y = yOffset + movelist.innerHeight;
    //getting inner height of div
    if(y >= contentHeight){
    //if the user scrolls to the bottom. If user goes over or hits it
        movelist.innerHTML += '<div class ="newData">hey look at me</div>';

    }

}

div.onscroll = yHandler;

//リッスンし、div が上下にスクロールされるたびに yHandler を起動します

4

2 に答える 2

1

それ以外の

div.onscroll = yHandler;

試す

window.onscroll = yHandler;

デモ


しかし

スクロールハンドラを with に設定したい場合は、divこれを試してください:

/*
 *  Keep reference of div id=movelist
 *  out of yHandler method
 */

var movelist = document.getElementById('movelist'); 
function yHandler() {
    var contentHeight = movelist.offsetHeight;
    var yOffset = movelist.pageYoffset;
    var y = yOffset + movelist.innerHeight;
    if (y >= contentHeight) {
        movelist.innerHTML += '<div class ="newData">hey look at me</div>';
    }
}

// handler to div with id=movelist
movelist.onscroll = yHandler;

作業サンプル</p>


コードを更新する

var movelist = document.getElementById('movelist');

function yHandler() {
    var contentHeight = movelist.scrollHeight;
    var yOffset = movelist.clientHeight;
    var y = yOffset + movelist.scrollTop;
    if (y >= contentHeight) {
        movelist.innerHTML += '<div class ="newData">hey look at me</div>';
    }
}

movelist.onscroll = yHandler;​

ワーキング サンプル

于 2012-09-16T04:55:20.497 に答える
0

次の行を置き換える必要があります。

div.onscroll = yHandler;

これについて:

$(window).bind("scroll", yHandler);

それはあなたが望むことをするでしょう。

于 2012-09-16T04:50:35.293 に答える