我試圖根據頁面的滾動位置來改變元素的填充;隨着用戶向下滾動頁面,填充增加,並且當它們向上滾動時,填充減少。滾動時增加/減少元素填充
我的主要問題是滾動不是很平滑,偶爾如果我滾動到頁面的頂部太快,元素的填充是每次不同的大小。我的目標是設置最小和最大填充量,因此滾動本質上是兩種尺寸之間的轉換。任何人都可以看到我要去哪裏嗎?
這裏是我的jQuery至今:
$(window).scroll(function(){
var h = 45;
if($(window).scrollTop() < 200){
$(".header").css({
'paddingTop': h-$(window).scrollTop() + "px",
'paddingBottom': h-$(window).scrollTop() + "px"
});
}
});
而且這裏是我的jsfiddle:http://jsfiddle.net/JDE8h/3/
我不知道你真正的問題是什麼,但它不是一個好想要在滾動事件中運行選擇器,因爲它會在滾動時反覆查詢DOM。試試像這樣:http://jsfiddle.net/JDE8h/4/ - 你能詳細描述一下你希望代碼的行爲嗎? – xec
感謝您的提示,我以前沒有考慮過。我希望代碼的行爲與本網站上的粘性導航類似:http://carreraworld.com/us/,其工作非常流暢且一致。我的例子中的元素似乎改變了高度,這取決於你滾動的速度,我猜測是因爲我的滾動速度快於jQuery可以計算出的正確高度,並且通常是不穩定的。謝謝閱讀! – mmmoustache