首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止Androids浏览器回滚

如何阻止Androids浏览器回滚
EN

Stack Overflow用户
提问于 2011-09-17 02:08:07
回答 1查看 685关注 0票数 0

我正在开发一个jquery移动应用程序,遇到了一个小问题;我想使用jquery的animate()在我的应用程序页面上轻柔地滚动“返回顶部”。

下面的代码片段在我的所有测试浏览器中都工作得很好。桌面版的Chrome & Firefox,iPhone版的Safari,安卓版的Firefox Beta都不错。动画完成后,默认的Android浏览器(webkit-mobile IIRC)会回滚到锚点。

代码语言:javascript
复制
$("a[href='#top']").live('click', function() {
    $("body").animate({ scrollTop: 0 }, "slow", function() {
        // anim complete
        setTimeout(function() { // not needed, attempt to brute-force
          window.scrollTo(0,0);
          alert('foo'); // <- Android scrolls back to anchor after showing alert
        }, 50);
    });
});

谁能建议a)是什么导致Android浏览器向后滚动和/或b)建议解决方法?如果这有什么不同的话,我现在测试的设备运行的是Android 2.3.2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-17 04:05:55

在阅读一个无关问题的文档时,我偶然发现了$.mobile.silentScroll()方法--显然是为这种情况而设计的。

这是我最初的脑死亡解决方法:

代码语言:javascript
复制
function scrollToTop() {
    var scrollPos = $(document).scrollTop();
    scrollPos -= 60;
    if (scrollPos < 1) { scrollPos = 1; }
    $.mobile.silentScroll(scrollPos);
    if (scrollPos > 1) { setTimeout(scrollToTop, 60); }
}

$("a[href='#top']").live('vclick', function() {
    scrollToTop();
    return false;
});

我仍然很好奇为什么Android浏览器想要滚动回原来的锚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7448697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档