我想在页面加载时自动滚动到特定的div.但是,我似乎与JQM的滚动到顶级功能发生了一些冲突.
我使用以下代码:
$.mobile.silentScroll($("#myElementId").offset().top);
Run Code Online (Sandbox Code Playgroud)
这样包裹时不能正确滚动:
$('[data-role=page]').bind("pageshow", function() {
$.mobile.silentScroll($("#myElementId").offset().top);
});
Run Code Online (Sandbox Code Playgroud)
但正常工作有点像这样的超时:
$('[data-role=page]').bind("pageshow", function() {
setTimeout(function(){$.mobile.silentScroll($("#myElementId").offset().top);},100);
});
Run Code Online (Sandbox Code Playgroud)
最后一段代码的问题是它会导致闪烁,跳转到顶部然后跳转到页面.任何想法如何避免这种情况?
您的setTimeout工作原理是,如果您要返回之前访问过的页面,jQuery Mobile 框架会记住您滚动到的位置,并且您必须等待它们的滚动完成才能运行您自己的页面。您实际上可以通过将事件处理程序minScrollBack内的选项更改mobileinit为非常大的选项来禁用此功能:
<script src="[jQuery Core]"></script>
<script>
$(document).bind("mobileinit", function(){
$.mobile.minScrollBack = 90000;
});
</script>
<script src="[jQuery Mobile]"></script>
Run Code Online (Sandbox Code Playgroud)
这应该会禁用 jQuery Mobile 框架在您后续访问页面时执行的自动滚动功能。
文档:http://jquerymobile.com/demos/1.0.1/docs/api/globalconfig.html
| 归档时间: |
|
| 查看次数: |
7403 次 |
| 最近记录: |