2016-03-28 10 views
1

私はサークルのdivは、ヘッダーにロックするときにユーザーがスクロールの過去。ウィンドウがスクロール過去の要素

私は、次のコードを使用していますが、それは

を動作しません。
var circle$ = $('.circle'), 
    oCircleBottom = circle$.offset().top + circle$.outerHeight(true), 
    window$ = $(window); 

window$.scroll(function() { 
    if (window$.scrollTop() > oCircleBottom) { 

    } 
}.bind(this)); 

ユーザーがサークルdivをスクロールしたときにアクションを実行したいと思います。しかし、上記のコードは動作していないようです。 oCircleBottomは正しく計算されていますか?

+0

[スクロールした後、固定のdivを作成する方法でこれを確認してください](http://stackoverflow.com/questions/15850271/how-to-make-div-fixed-after-you-scroll-to- that-div) – TheUknown

+0

divを過ぎてスクロールする方法が必要です –

+0

過去のスクロールはどういう意味ですか?説明できますか?あなたの質問には、「ユーザーが過去にスクロールしたときに、円のdivがヘッダーにロックされます。」というか、ユーザーが過去にスクロールしたときに実行するアクションがありますか? – TheUknown

答えて

0

あなたは、あなたのコードのdoesntの仕事を下にスクロールするのに十分なページの高さはイマイチかのために考慮にウィンドウの高さを取る必要がある

$(document).ready(function() { 
    var circle$ = $('.circle'), 
    oCircleBottom = circle$.offset().top + circle$.outerHeight(true), 
    window$ = $(window); 

    window$.scroll(function() { 
    if (window$.scrollTop() > oCircleBottom) { 
     $('.circle').css({      
      position: 'fixed', 
      top: '0', 
      left: '0' 
     }); 
    } 
    else{ 
       $('.circle').css({      
       position: 'static'}); 
    } 
    }.bind(this)); 

}); 
0

(ドキュメント).ready関数$でコードを囲みます。 this example

ただし、ページの高さを上げると、コードはウィンドウの高さを引いても問題なく機能します。見てくださいthis example

したがって、ウィンドウの高さを減算することをお勧めします。 jsFiddle

$(window).bind('scroll', function() { 

    if($(window).scrollTop() >= $('.circle').offset().top + $('.circle').innerHeight() - window.innerHeight) { 
     //Do you stuff 
    } 
}); 
関連する問題