Javascript 在动态和不可见的div(小方框)内滚动到其中的一个元素

Javascript 在动态和不可见的div(小方框)内滚动到其中的一个元素,javascript,jquery,html,dynamic,scroll,Javascript,Jquery,Html,Dynamic,Scroll,我有一个页面,它将动态内容加载到一个名为TINY box的模式弹出框中。仅当单击相应的链接时才会生成内容。然后我有一个名为var innerhtml=“的变量,它在模式框内生成div 其中d.name是一个基于我的数据动态生成值的变量。此div位于主模式框div内,每当用户打开链接并关闭框时,该框就会生成并销毁 事实上,即使盒子是动态生成的: var innerhtml2=“ 但是,当该框打开时,我希望该框自动滚动到特定的div(基于我上面提到的id) 我尝试了ScrollTop、ScrollT

我有一个页面,它将动态内容加载到一个名为TINY box的模式弹出框中。仅当单击相应的链接时才会生成内容。然后我有一个名为
var innerhtml=“
的变量,它在模式框内生成div

其中d.name是一个基于我的数据动态生成值的变量。此div位于主模式框div内,每当用户打开链接并关闭框时,该框就会生成并销毁

事实上,即使盒子是动态生成的:
var innerhtml2=“

但是,当该框打开时,我希望该框自动滚动到特定的div(基于我上面提到的id)

我尝试了ScrollTop、ScrollTo和Scrollintoview,但我没有任何运气,因为模式框是在运行中创建和销毁的,我已经读到这些函数只有在页面完全加载后才能工作。是否可以编写一个程序,自动将动态生成的模式框滚动到其中动态生成的div

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

提前谢谢


Kaushik

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

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

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

模式框会加载一个时间延迟,因此当最终生成DOM元素时,要滚动的代码已经执行,因此程序无法使用Jquery的triggerHandler识别DOM元素,滚动的时间延迟更长,我的问题解决了!另外,我认为这类bug就是我们所知道的海森堡bug-

我不想滚动到顶部。我希望能够通过模式框从上到下导航,使用基于页面完全加载后用户单击位置的自动滚动。此外,我在Chrome上的控制台仍然给了我一个“无法读取未定义的属性top”的选项,如果您想查看jQuery的文档,您会看到scrollTop的功能。看看这把小提琴,它以一种非常基本的形式,正是你想要的:好的,所以我用它作为我的模态盒:。问题是因为它是一个模态框,所以你的代码并不适用于我。虽然我试过了,但由于某种原因,当我尝试滚动到元素时,它没有找到模态框的内部元素。ScrollTop给了我一个“cannotreadproperty-top-of-undefined”一个“modal”(它不是官方术语或任何东西)仍然只是一个HTML元素,如果您给它一个正确的id,您可以正确地寻址它。您得到的错误表明选择器中的元素($(“#”+d.name)不存在。无论如何,d.name不能是带点的javascript变量,对吗?某种对象?可能存在错误。您是否尝试调试d.name('console.log(d.name)')?好的,那么d是一个对象,d.name包含我元素的名称。这没有问题。但我意识到我的问题是由于时间延迟造成的。模式框加载时会有时间延迟,因此当最终生成DOM元素时,要滚动的代码已经执行,因此程序无法使用Jquery的triggerHandler和更长的时间来识别DOM元素为了滚动,我的问题解决了!而且,我认为这些类型的bug就是已知的海森堡bug-