0

ほとんど機能するスクリプトがあります。div がページの上部から一定の距離にあるときに、javascript 関数を実行しようとしています。ユーザーがページをスクロールすると div の位置が変わります。上からの距離を計算したいと思います。ここに私が持っているものがあります:

$(window).scroll(function () {
    var myDiv = $("#myDiv").offset().top;
    var height = $(window).height();
    if(myDiv < height)
    {
        myScript();
    }
});

問題は、このスクリプトがページを下までスクロールした後にのみ実行されることです。これは、次のように書いても発生します。

var myDiv = parseInt($("#myDiv").offset().top) - 300;

それmyDiv < heightは実際には機能していないようです。私は何を間違っていますか?

4

2 に答える 2

0
 $(window).scroll(function () {
     var scrollTop = document.body.scrollTop;
     var offsetTop = $("#myDiv").offset().top;
     var offsetHeight = $("#myDiv").height();

     if(scrollTop + $(window).height() >= offsetTop && scrollTop < offsetTop + offsetHeight) {
         myScript();
     }
 });

基本的...

スクロール位置 + ウィンドウの高さが div の上部以上であり、ドキュメントのスクロール位置が div の下部よりも大きい場合、myScript を起動します。

div が表示されている場合は、myScript を起動する必要があります。

$("body").scrollTop() を使用すると、Firefox は常に 0 を返すため、document.body.scrollTop を使用しました。$("html").scrollTop().

于 2013-09-15T23:31:01.180 に答える
0

のようなものを試してください

$(window).scroll(function () {
    if ($("#myDiv").scrollTop() < height ) {
        myFunction();
    }
});
于 2013-09-15T22:47:53.730 に答える