web-dev-qa-db-ja.com

jQueryウィンドウスクロールイベントが起動しない

私はjqueryを介してdivに単純な「ビューポート内に留まる」動作を実装しようとしています。そのために、関数をウィンドウのスクロールイベントにバインドする必要がありますが、起動させることができないようです。何も起こりません。私は単純なalert()、console.log()をサイコロなしで試しました。私が間違っていることのアイデアは?

このコード:

$(window).scroll(function () {  
            console.log("scrolling");           
});

htmlファイルの一番下にあるscript.jsにあります

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>

[〜#〜] update [〜#〜]テストURL: http://pixeline.eu/test/menu.php

43
pixeline

あなたのCSSは実際にドキュメントの残りをオーバーフローを表示しないように設定しているため、ドキュメント自体はスクロールしていません。これに対する最も簡単な修正は、イベントをスクロールしているものにバインドすることです。これはあなたの場合はdiv#page

簡単に変更できます:

$(document).scroll(function() {  // OR  $(window).scroll(function() {
    didScroll = true;
});

$('div#page').scroll(function() {
    didScroll = true;
});
104

私の問題は、CSSにこのコードがあったことでした

html,
body {
    height: 100%;
    width: 100%;
    overflow: auto;
}

削除すると、ウィンドウのスクロールイベントが再び発生しました

29
$('#div').scroll(function () {
   if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight-1) {

     //fire your event


    }
}
3
Ashish Asodiya

あなたが試したものに関係なく(私のように)働いていない人:<element onscroll="myFunction()"></element>は魅​​力のように機能します

w3の学校で説明されているとおり https://www.w3schools.com/tags/ev_onscroll.asp

0
mallocthePD

解決策は次のとおりです。

 $('body').scroll(function(e){
    console.log(e);
});
0
Pan Bouradas

何もうまくいかないように見えたが、これはトリックをやった

$(parent.window.document).scroll(function() {
    alert("bottom!");
});
0
LegionDev