2012-04-20 17 views
0

私はポストページにjquery固定サイドバーがあるワードプレスのウェブサイトを持っています。固定サイドバーは、ポストセクションから開始し、コメントセクションで停止します。JQueryの固定サイドバーは長いコンテンツでは機能しません

私はこれがうまく機能し、このjqueryの

$window = $(window), 
    $sidebar = $("#side-scroller"), 
    sidebarTop = $sidebar.position().top, 
    sidebarHeight = $sidebar.height(), 
    $footer = $("#comments"), 
    footerTop = $footer.position().top,  
    $sidebar.addClass('fixed'); 

    function isScrolledIntoView(elem) 
    { 
     var docViewTop = $(window).scrollTop(); 
     var docViewBottom = docViewTop + $(window).height(); 

     var elemTop = $(elem).offset().top; 
     var elemBottom = elemTop + $(elem).height(); 

     return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
    } 


    $window.scroll(function(event) { 
     scrollTop = $window.scrollTop(), 
     topPosition = Math.max(0, sidebarTop - scrollTop), 
     topPosition = Math.min(topPosition, (footerTop - scrollTop) - sidebarHeight); 
     $sidebar.css('top', topPosition); 

     if(isScrolledIntoView('#comments')){ 
      $("#side-scroller").hide(); 
     } 
     else{ 
      $("#side-scroller").show(); 
     } 
    }); 

を使用していますが、ポストの内容が長すぎるとき、それは決してコメントセクションで停止しません。 (固定サイドバーが正常に動作します)

ここ

デモを見ることができ、

通常ポスト http://webstutorial.com/google-server-side-geocoding-php-infobox/website-tweaks/google

これはされていません(サイドバーがスクロールを続けている) http://webstutorial.com/html5-css3-toggle-slideup-slidedown/html-5

そして長い記事迷惑メール、またはリンクビルダーなので、下の投票をしないでください

+0

投票の理由を知ることはできますか? –

答えて

0

私はそれが動作していると思いますロード後のページの変化により、高さが正しく計算されていません。

これを$ window.scroll関数に移動すると、scrollに正しい値が得られるはずです。

$footer = $("#comments"), 
footerTop = $footer.position().top; 
+0

私はちょうどそれを試してみるよ –

+0

それは感謝を働いた –

+0

あなたの歓迎:) –

関連する問題