2014-12-03 56 views
0

我的HTML內容是從jquery生成的,它依賴於ajax響應。在HTML內容我有#leftsection其中有CSS "overflow-y:scroll;"裏面"#leftsection"我已經說的盒子,其"#devicebox_"+i有CSSjQuery滾動頂端不起作用

我追加動態列表,"#devicebox_"+i如果列表內容的數量爲「6我申請"#devicebox_"+i

我的HTML內容與左段和devicebox是這個樣子

<div id="leftsection"> 
    <div id="devicebox_1"> 
     <div id="listitem_1">LIST ITEM 1</div> 
     <div id="listitem_2">LIST ITEM 2</div> 
     <div id="listitem_3">LIST ITEM 3</div> 
     <div id="listitem_4">LIST ITEM 4</div> 
     <div id="listitem_5">LIST ITEM 5</div> 
     <div id="listitem_6">LIST ITEM 6</div> 
     <div id="listitem_7">LIST ITEM 7</div> 
     <div id="listitem_8">LIST ITEM 8</div> 
    </div> 
</div> 

以下是我的jQuery向下滾動devicebox_1。

請記住,存在多個設備箱,例如devicebox_1,devicebox_2,devicebox_3,因爲內容是動態的,listitem也是如此。加載設備箱及其相關項目列表後。

ajax請求正在逐一發送處理列表項。我想要的是將當前設備箱(devicebox_1)向下滾動到正在處理的列表項。

以下是小的jQuery,我使用滾動下來,但沒有工作

for(var i=0; i< $(itemlist).size(); i++) 
{ 
    $('#devicebox_'+currDeviceid).animate({ 
      scrollTop: $('#listitem_'+i).offset().top 
    }, 100); 
} 
+0

你的錯誤控制檯說什麼? – 2014-12-03 14:55:16

+0

沒有錯誤它只是移動到下一個listitem並處理它 – Mahendra 2014-12-03 14:56:35

+0

代碼是否做任何事情?也就是說,它是否比你想要的更少或更多?如果列表項附加在列表的末尾,則可以簡單地爲'scrollTop'使用任意大的值,例如, '0xffff'。 – clapas 2014-12-03 15:50:47

回答

1

1:滾動頂部是相對於你的#devicebox_X元素,所以如果你想你的devicebox滾動到位置devicebox元素的listitem必須具有CSS樣式position: relative

2:要使用相對於它的偏移父級的偏移量,您需要使用jQuery的position()方法,該方法與offset方法完全相同,但是相對於其父級。

jQuery's description of the position method

那麼它應該工作。