2012-04-15 5 views
0

私は1つのページャーを持っています。その1つのページャーでは、私はdisplay:none(div内の固定側のナビ)として設定された項目を持っています。CSS JS表示なしalter div

特定のdivにスクロールするときに表示させることはできますか?

コード内では始まりますが表示されないので、ユーザーが#aboutにスクロールするとサイドナビゲーターが表示されますか?

+2

のような要素を表示することができますか? –

+0

このコードは、スクロールしやすいときにdivを表示します。 http://joelb.me/scrollpath/ – felickz

答えて

1

本質的には、ユーザーがaboutのdiv idまでスクロールしたかどうかを確認する必要があります。 まず、divの現在のY値を設定する必要があります。

//cache about div 
var about = $('#about'); 
//this caches the about div position on window load 
var aboutPosition = about.position(); 

次に、ユーザーがスクロールした距離を特定する必要があります。私がこれを達成するために決めた最善の方法はタイマーです。あなたはscollイベントを使用することができますが、それはユーザーのブラウザにはあまりにも負担がかかりすぎます。タイマーはほとんど区別できません。

//generic timer set to repeat every 10 mili(very fast) 
//with a callback to execute the logic 
var checkScrollPos = window.setInterval("scrollTopLogic()",10); 

function scrollTopLogic(){ 
    //if about y position is greater than or equal to the 
    //current window scroll position do something 
    if(aboutPosition.y >= $(window).scrollTop()){ 
     $('nav').show(); 
     //remove timer since it is no longer needed 
     window.clearInterval(checkScrollPos); 
    } 
} 
+0

これは素晴らしいことです!どうもありがとうございました! – Michael

0

あなたはDIVのスクロールイベントをキャッチし、あなたがマークアップ表示またはjsfiddle.netを提供することができ、この

$("#div").scroll(function() { 
    $("#item").show(); 
}); 
関連する問題