2013-10-22 35 views
1

我使用appendTo到一组选定的元素添加到某个DOM元素:appendTo推窗口并向下滚动?

$('#incoming-items').appendTo($('#item-list')); 

(#incoming产品是由Ajax调用接收的项目的占位符我的期望是:

  1. 中的元素将后#项目列表
  2. 视口,窗口将保持在它以前是位置被加入。例如,如果项目列表等
窗口内配合210

ITEM1

ITEM2

项目3


传入项item7,item8应(和通常)保持它像这样,加入视口下面:


item1

ITEM2

项目3


item7

item8

BUT:有时会发生什么情况(特别是当滚动条位于底部)是item7和8中示出相反(和项目1,2推高):


项目3

item7

item8


现在,这只是发生在Firefox!

什么想法?什么?

千恩万谢

回答

1

试试这个:

var scroll = $('#incoming_items').scrollTop();  
$('#incoming-items').appendTo($('#item-list')); 
$('#incoming_items').scrollTop(scroll); 

将存储当前的滚动位置(从顶部像素)和跳回了,无论发生什么事情到底层DIV。

+1

你是男人。该方法的作品!我不得不改变你应用scrollTop作为整个html标签的选择器,这样它就会成为浏览器的滚动条(scrollTop属于一个内部滚动条,所以现在看起来像: var scroll = $(“html”)。scrollTop(); $('#incoming-items')。appendTo($( '#项目清单')); $( 'HTML')scrollTop的(滚动)。 和它的作品! – Lior

+0

啊,由于某种原因,我以为你已经有一个内部滚动条的固定高度DIV。这工作:)很高兴成为帮助! –