在动态和不可见div(TINY框)内滚动到内部元素

时间:2013-06-03 12:11:30

标签: javascript jquery html dynamic scroll

我有一个页面,它在名为TINY box的模态弹出框内加载动态内容。仅在单击相应链接时生成内容。然后我有一个名为var innerhtml = "<div id ='"+d.name+"'>的变量,它在模态框内生成div。

其中d.name是一个根据我的数据动态生成值的变量。这个div位于主模式框div中,只要用户打开链接并关闭框,就会生成并销毁它。

事实上甚至盒子都是即时生成的: var innerhtml2 = "<div id ='box'>

但是当盒子打开时,我希望盒子自动滚动到特定的div(基于我上面提到的ID)。

我尝试过ScrollTop,ScrollTo和Scrollintoview - 但我没有运气,因为模态框是动态创建和销毁的,我已经读过这些功能只有在页面完全可用时才能运行加载。是否有可能编写一个程序,可以自动滚动动态生成的模态框到其中动态生成的div?

那我该怎么做呢?你需要代码片段吗?

提前致谢!

考希克

2 个答案:

答案 0 :(得分:0)

假设我理解正确,您可以在打开创建的框的函数中使用以下jquery代码,并在将div添加到DOM之后:

$('html, body').animate({
     scrollTop: $("#"+d.name).offset().top
}, 1000);

这将滚动到元素的顶部,其id存储在变量d.name,

答案 1 :(得分:0)

模态框加载时间延迟,因此当最终生成DOM元素时,滚动的代码已经执行,因此程序无法识别DOM元素使用Jquery的triggerHandler和更长的滚动时间延迟,我的问题解决了!此外,我认为这些错误是众所周知的Heisenbugs - Why would jquery return 0 for an offsetHeight when firebug says it's 34?