0

一定量のスクロールが発生するまで(最初の子要素をスクロールして)、サイドバーを通常どおりに動作させようとしていますdiv。その後、所定の位置に固定します。

試しに、空白に変更してみました。しかし、それは何の影響も与えていません。

<script type="text/javascript">
    var side_offset_top = $('#side').offset().top;
    var side = function(){
        var scroll_top = $(window).scrollTop();
        if (scroll_top > side_offset_top) { 
            document.getElementById('side').innerHTML = ''; //blank to test
        } else {
        }
    };
    side();
    $(window).scroll(function() {
        side();
    });
});
</script>

私はJavaScriptが初めてなので、これを手伝ってくれる人がいれば幸いです。

4

1 に答える 1

0

$が表示されているので、jQueryを使用していると思います

コードの最後の行に余分なものがある});ので、コピー ペースト エラーでない限り、それを削除する必要があります。

次に、コードを $(document).ready() ハンドラー内に配置してみてください。$('#side') は、オフセットのチェック時にまだ DOM にない可能性があります。

(未テスト) のようなもの:

$(document).ready(function(){
    var side_offset_top = $('#side').offset() && $('#side').offset().top;
    var side = function(){
        var scroll_top = $(window).scrollTop();
        if (scroll_top > side_offset_top) { 
            $('#side').html(''); // using jQuery .html
        }
    };
    side();
    $(window).on('scroll', function() { // consider using .on here instead
        side();
    });
});

編集:おっと!offset().top() は offset().top にする必要があります

于 2013-07-07T22:23:39.170 に答える