有没有办法禁用在safari iOS中点击输入框时发生的滚动?我的网站不太适合滚动发生,实际上使网站不那么用户友好。
我尝试过使用:
$('input,select,textarea').bind('focus',function(e) {
window.scrollTo(0, 0);
});
但它只会强制safari滚动到我的文档顶部,这意味着地址栏仍然是“隐藏”。我只是不明白为什么如果window.scrollTo(0,1)应该“隐藏”地址栏,为什么window.scrollTo(0,0)不显示它?
同样,当textarea滚动/滑过时,有没有办法阻止safari滚动文档?目前,如果我向下滚动页面并碰巧在textarea字段中滚动,它会滚动整个页面。实际上,第二眼看来,它似乎也会在输入字段上执行此操作。
答案 0 :(得分:1)
当输入聚焦于此代码时,我很幸运地阻止地址栏出现。这是垃圾邮件,但这是一个相当短暂的爆发,似乎可以解决问题。
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 :(得分: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);
}
});