jQueryを使用してスティッキーサイドバーのスニペットを作成しようとしています。何らかの理由で、.scroll()
の内部の関数は、すべてのスクロールイベントで実行されるのではなく、1回だけ実行されます。私は何が間違っていますか?.scroll()は1回だけ実行されています
var sticky = $('#sticky');
var staticSticky = $(sticky).offset().top;
$(window).scroll(moveEl(sticky, staticSticky));
function moveEl(element, staticElToTop){
if($(window).scrollTop() >= staticElToTop){
$(element).css('top', $(window).scrollTop() + 'px');
}
}
は全体の試みは、ここを参照してください:http://codepen.io/ExcellentSP/pen/GqZwVG
上記のコードが完全に機能していません。私は、スクロールイベントを正常に動作させてから、続行しています。説明
var sticky = $('#sticky');
var staticSticky = $(sticky).offset().top;
$(window).scroll(moveEl(sticky, staticSticky));
function moveEl(element, staticElToTop) {
return function() {
if($(window).scrollTop() >= staticElToTop){
$(element).css('top', $(window).scrollTop() + 'px');
}
}
}
: 主な違いは、関数を呼び出すと、それことであるあなたは、このような関数へのあなたのごmoveEl
方法($(window).scroll()
のために返される)の内容をラップする必要が
違いを説明する参考資料はありますか?私はまだ図書館の理解を深めています。あなたの答えに含めてください。ドキュメンテーションは、 "イベントがトリガされるたびに実行する関数"というハンドラについてこれを示しています。 – ExcellentSP
@Shaneは答えを –