我剛剛與jQuery prepend
工作,並無法讓其按預期工作。jQuery prepend - 防止自動滾動
我在做什麼:
前面加上一個
.content
div來#main
DIV每隔一秒
但是,當我稍微向下滾動[一旦頁面充滿了內容] ,我一直滾動回#main
的頂部或最新預先.content
如何做我:
。防止
viewport
更改 - 就像在追加
相關fiddle
我剛剛與jQuery prepend
工作,並無法讓其按預期工作。jQuery prepend - 防止自動滾動
我在做什麼:
前面加上一個
.content
div來#main
DIV每隔一秒
但是,當我稍微向下滾動[一旦頁面充滿了內容] ,我一直滾動回#main
的頂部或最新預先.content
如何做我:
。防止
viewport
更改 - 就像在追加
相關fiddle
正如我在評論解釋的情況下,滾動實際上並沒有改變。該窗口的滾動基於「距離頂部」(DfT)。也就是說,如果你沒有滾動條,你的DfT就是0.一旦滾動條被引入,你現在有一段距離可以使用。
由於內容越來越長,視口只有很多像素高,某些內容會從頁面底部「脫落」(預先將DfT降低到新元素的高度)。
我能想到的最佳方式是用新元素的高度來對抗它。這使您可以滾動到某個位置,然後在添加新元素時相應地修改滾動位置。
這裏是我的意思的例子:http://jsfiddle.net/bradchristie/66RvC/1/
和代碼(僅供參考):
var f = function(){
var t = $(window).scrollTop(), // Window's current scroll position
$d = $(d()).prependTo('#main'), // store the new element
h = $d.outerHeight(); // also get its height
if (t){ // Only adjust if they've scrolled
$(window).scrollTop(t + h); // add the delta to the scroll position
}
setTimeout(f, 1000);
};
而且,追加與DfT無關,我沒有任何問題。對? – Prasanth
@goldenparrot:並不是說它沒有任何關聯,只是這個附加並沒有將很多元素向下移動。但是,如果您在頁面上有兩個列表,並且您不斷將元素附加到列表頂部,則第二個列表的元素會發生變化,您也會遇到同樣的問題。 –
@goldenparrot:我的意思[這裏]的示例(http://jsfiddle.net/bradchristie/66RvC/3/)(使用append而不是前置)。現在注意它與內容之後的內容。 –
的觀點並沒有改變;頁面變得更長,所以從頂部滾動距離是靜態的,而整個頁面長度變得動態變大(因此底部元素超出了視口)。正試圖做到這一點,如果你一直滾動到頁面底部,最後一個元素保持在視圖中而不是「脫落」? –
@BradChristie我基本上想'什麼是visibile'[除了滾動條,顯然應該改變],根本不要改變,而不管前置。 – Prasanth