2013-11-09 108 views
0

所以,我有一個div,我試圖保持從頁面頂部到滾動頁面之間的100px。此刻,我的代碼工作十歲上下,但股利不保持在從頂部正好100像素,而不是改變0像素之間 - 200像素固定元素,而滾動?

這裏是我使用的是什麼大氣壓:

$(window).scroll(function(){ 
var tpxl = $(window).scrollTop(); 
if(tpxl<100) { 
$('#div').css('top',-Math.abs(tpxl)+100 + 'px'); 
} 
else if(tpxl>700) { 
$('#div').css('top',-Math.abs(tpxl)+800 + 'px'); 
} 
}); 

回答

1

你不」 t需要Math.abs(),因爲tpxl將始終爲正數。要將div的位置設置爲距當前窗口頂部100px,請使用$(window).scrollTop() + 100 + 'px'

我不明白你爲什麼擁有if/else if結構。下面將保持固定的股利爲100px的所有時間:

$(window).scroll(function() { 
    $('#div').css('top', $(window).scrollTop() + 100 + 'px'); 
}).scroll(); 

演示:http://jsfiddle.net/G5BVU/

要只設置「固定」的位置時滾動點低於100或700多喜歡你原代碼試試這個:

$(window).scroll(function() { 
    var tpxl = $(window).scrollTop(); 
    if (tpxl < 100 || tpxl > 700) { 
     $('#div').css('top', tpxl + 100 + 'px'); 
    } 
}).scroll(); 

演示:http://jsfiddle.net/G5BVU/1/

編輯:通常有元素,除了滾動窗口時SC這兩個點之間的壓延距離我以前的例子扭轉if條件:

if (tpxl > 100 && tpxl < 700) 
    $('#div').css('top', tpxl + 100 + 'px'); 

http://jsfiddle.net/G5BVU/2/

在所有情況下提供初始top設定適當。

+0

我應該更好地解釋這一點;我需要元素與其餘元素一起滾動,直到窗口滾動距離達到100px,然後我希望元素從頂部保持100px,直到窗口滾動距離達到700px爲止 –

+0

請參閱我的更新和最終演示 - 它可能不會相當你在找什麼,但我希望它能給你足夠的想法來完成它自己。無論你在做什麼,你都不需要否定'tpxl'的值或使用'-Math.abs(tpxl)'。 – nnnnnn

+0

這可能是我的瀏覽器/硬件的問題,但元素在滾動時仍然抖動 –