想要在加载后滚动到某个位置,但在短暂的停留后它会自动滚动回顶部(JQUERY,JQUERY-MOBILE)
Want to Scroll to a position after loading but after a short stint it automatically scrolls back to the top (JQUERY,JQUERY-MOBILE)
我使用 SYMFONY 3 和 JQUERY 1.11.1 + JQUERY 移动版 1.4.2
在我有一个 table 的页面上,table 的每一行都可以扩展(包含关于该行的表格),当我打开一行时,页面会通过 SYMFONY 再次生成控制器。
在我的 TWIG 文件底部,我添加了一个带有 $(document).ready(...) 的标签。我想通过 JQUERY(或 JS)操纵 SCROLL 以到达我打开的行的位置。
我看到可以这样做:
$('body').animate({
scrollTop: $('#myRowId').offset().top + 'px'
}, "fast");
或者那样:
$(document).scrollTop($('#myRowId').offset().top));
它会在短时间内起作用,然后 SCROLL 会自动回到顶部(y 位置:0),没有任何解释(据我所知)。
我设法通过使用 setTimeout 解决了问题,例如:
setTimeout(function({$(document).scrollTop($('#myRowId').offset().top);},5000);
但这不是很好,我更想知道哪个事件是由 JQUERY 或 JQUERY MOBILE 在将 SCROLL 设置回顶部的幕后触发的。
有人知道吗?
这是 onload 事件的解决方案:
$(window).load({'rowId':'#'+rowRootId+'_id'},function(event){
$('body').animate({scrollTop: $(event.data.rowId).offset().top + 'px'}, "normal");
})
我使用 SYMFONY 3 和 JQUERY 1.11.1 + JQUERY 移动版 1.4.2
在我有一个 table 的页面上,table 的每一行都可以扩展(包含关于该行的表格),当我打开一行时,页面会通过 SYMFONY 再次生成控制器。
在我的 TWIG 文件底部,我添加了一个带有 $(document).ready(...) 的标签。我想通过 JQUERY(或 JS)操纵 SCROLL 以到达我打开的行的位置。
我看到可以这样做:
$('body').animate({
scrollTop: $('#myRowId').offset().top + 'px'
}, "fast");
或者那样:
$(document).scrollTop($('#myRowId').offset().top));
它会在短时间内起作用,然后 SCROLL 会自动回到顶部(y 位置:0),没有任何解释(据我所知)。
我设法通过使用 setTimeout 解决了问题,例如:
setTimeout(function({$(document).scrollTop($('#myRowId').offset().top);},5000);
但这不是很好,我更想知道哪个事件是由 JQUERY 或 JQUERY MOBILE 在将 SCROLL 设置回顶部的幕后触发的。
有人知道吗?
这是 onload 事件的解决方案:
$(window).load({'rowId':'#'+rowRootId+'_id'},function(event){
$('body').animate({scrollTop: $(event.data.rowId).offset().top + 'px'}, "normal");
})