我有一个页面,它在名为TINY box的模态弹出框内加载动态内容。仅在单击相应链接时生成内容。然后我有一个名为var innerhtml = "<div id ='"+d.name+"'>
的变量,它在模态框内生成div。
其中d.name是一个根据我的数据动态生成值的变量。这个div位于主模式框div中,只要用户打开链接并关闭框,就会生成并销毁它。
事实上甚至盒子都是即时生成的:
var innerhtml2 = "<div id ='box'>
但是当盒子打开时,我希望盒子自动滚动到特定的div(基于我上面提到的ID)。
我尝试过ScrollTop,ScrollTo和Scrollintoview - 但我没有运气,因为模态框是动态创建和销毁的,我已经读过这些功能只有在页面完全可用时才能运行加载。是否有可能编写一个程序,可以自动滚动动态生成的模态框到其中动态生成的div?
那我该怎么做呢?你需要代码片段吗?
提前致谢!
考希克
答案 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?