私は1つのページャーを持っています。その1つのページャーでは、私はdisplay:none
(div内の固定側のナビ)として設定された項目を持っています。CSS JS表示なしalter div
特定のdivにスクロールするときに表示させることはできますか?
コード内では始まりますが表示されないので、ユーザーが#about
にスクロールするとサイドナビゲーターが表示されますか?
私は1つのページャーを持っています。その1つのページャーでは、私はdisplay:none
(div内の固定側のナビ)として設定された項目を持っています。CSS JS表示なしalter div
特定のdivにスクロールするときに表示させることはできますか?
コード内では始まりますが表示されないので、ユーザーが#about
にスクロールするとサイドナビゲーターが表示されますか?
本質的には、ユーザーが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);
}
}
これは素晴らしいことです!どうもありがとうございました! – Michael
あなたはDIVのスクロールイベントをキャッチし、あなたがマークアップ表示またはjsfiddle.netを提供することができ、この
$("#div").scroll(function() {
$("#item").show();
});
のような要素を表示することができますか? –
このコードは、スクロールしやすいときにdivを表示します。 http://joelb.me/scrollpath/ – felickz