0

我的 HTML 内容是从 jquery 生成的,它取决于 ajax 响应。在 HTML 内容中,我有里面#leftsection有 css我有框说有 css"overflow-y:scroll;""#leftsection""#devicebox_"+i"overflow-y:hidden;"

我正在附加动态列表"#devicebox_"+i,如果列表内容的数量> 6,我正在申请"#devicebox_"+i

我的左侧部分和设备框的 HTML 内容看起来像这样

<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>

以下是我向下滚动 devicebox_1 的 jQuery。

请记住,有多个设备盒,例如 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);
}
4

1 回答 1

1

1:滚动顶部是相对于你的 #devicebox_X 元素的,所以如果你想滚动你的设备框到列表项的位置,设备框元素必须有 CSS 样式position: relative

2:要使用相对于它的偏移父级的偏移量,您需要使用 jQuery 的position()方法,该方法与该方法完全相同,offset但相对于它的父级。

jQuery 对position方法的描述

然后它应该工作。

于 2014-12-03T15:15:19.070 回答