Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何阻止机器人';防止浏览器向后滚动_Javascript_Jquery_Android_Jquery Mobile_Mobile Webkit - Fatal编程技术网

Javascript 如何阻止机器人';防止浏览器向后滚动

Javascript 如何阻止机器人';防止浏览器向后滚动,javascript,jquery,android,jquery-mobile,mobile-webkit,Javascript,Jquery,Android,Jquery Mobile,Mobile Webkit,我正在开发jquery移动应用程序,遇到了一些问题;我想使用jquery的animate()轻轻滚动我的应用程序页面的“返回顶部” 下面的代码片段在我的所有测试浏览器中都非常有效,只有一个除外。桌面上的Chrome和Firefox、iPhone上的Safari和Android上的Firefox测试版都不错。动画完成后,默认的Android浏览器(webkit mobile IIRC)会滚动回定位点 $("a[href='#top']").live('click', function() {

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

下面的代码片段在我的所有测试浏览器中都非常有效,只有一个除外。桌面上的Chrome和Firefox、iPhone上的Safari和Android上的Firefox测试版都不错。动画完成后,默认的Android浏览器(webkit mobile IIRC)会滚动回定位点

$("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[href=”#top']).live('click',function()){
$(“body”).animate({scrollTop:0},“slow”,function()){
//动画完成
setTimeout(函数(){//不需要,尝试暴力
滚动到(0,0);

alert('foo');//在阅读一个无关问题的文档时,我偶然发现了这个方法——显然就是为这种情况设计的

以下是我最初的脑死亡解决方案:

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;
});
函数scrollToTop(){
var scrollPos=$(document.scrollTop();
位置-=60;
如果(scrollPos<1){scrollPos=1;}
$.mobile.silentScroll(scrollPos);
如果(scrollPos>1){setTimeout(scrollToTop,60);}
}
$(“a[href=”#top'])。live('vclick',function(){
滚动totop();
返回false;
});

仍然很好奇为什么Android浏览器希望以原始形式滚动回锚点。

是否有效?我也有同样的问题,想知道您是否找到了更好的解决方案,或者这个解决方案是否完美。Cheers我没有看到任何更好的解决方案;这绝对不是完美的,但它满足了我当时的需要。如果您找到了,我会的还有更好的解决方案,我很想听听。:)