2011-12-15 178 views
1

有没有一种方法来禁用攻丝时在Safari的iOS的输入框出现这种情况滚动?我的网站不太适合滚动发生,实际上使网站不太友好。iOS的Safari浏览器 - 禁用隐藏地址栏上输入焦点

我已经尝试使用:

$('input,select,textarea').bind('focus',function(e) { 
window.scrollTo(0, 0); 
}); 

但它只是迫使野生动物园滚动到我的文档,这意味着地址栏仍是上方“隐藏”。我只是不明白为什么如果window.scrollTo(0,1)应该“隐藏”地址栏,为什么不window.scrollTo(0,0)显示它?

同样,是有办法阻止Safari滚动时textarea的滚动在文件/跨刷卡?目前,如果我向下滚动页面并碰巧在textarea字段中滚动,它会滚动整个页面。其实,在第二眼看来,它似乎也在输入字段上做到了这一点。

+0

我正在使用iscroll,如果这有什么区别。 – Aaron 2011-12-16 15:31:30

回答

0

我有运气防止地址栏从当输入的重点是与此代码出现。这是垃圾邮件,但这是一个相当短暂的突发,似乎在伎俩。

var top = 1; // or your input box position 
var spamStop = (new Date()).getTime() + 10; 
var scrollSpam_id = setInterval(function() { 
    var t = (new Date()).getTime(); 
    if (t > spamStop) { 
     clearInterval(scrollSpam_id); 
    } else { 
     window.scrollTo(0, top); 
    } 
}, 1); 
1

我知道这是一个老问题,但它可能会帮助别人后:)

这是我做的,所以,地址栏将不会在输入焦点显示,同时始终隐藏检测任何滚动事件时的地址栏。

var inputInFocus=false; 
$('input').focus(function(){ 
    inputInFocus=true; 
}); 
$('input').blur(function(){ 
    inputInFocus=false; 
    setTimeout("$(document).scrollTop(0);",0); 
}); 
/*detect any scroll function and hide address bar*/ 
$(window).scroll(function(){ 
    if(!inputInFocus){ 
setTimeout("$(document).scrollTop(0);",200); 
    } 
});