我有一个网络应用程序.我正在尝试禁用/阻止当您专注于不同的表单输入时发生的滚动(即,当您通过表单中的输入元素前进时发生的滚动).
我已经禁用了滚动:
<script type="text/javascript">
$(document).ready(function() {
document.ontouchmove = function(e){
e.preventDefault();
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
要添加更多信息 - 我的页面包含一些"幻灯片".每个都是768x1024,它们在页面上"堆叠"(即页面是768x3072 [1024*3 = 3072]),当你点击链接我正在使用scrollTo jquery插件滚动到下一个"幻灯片"并.focus()在输入元素.
有谁知道如何做到这一点?
我正在使用Cordova 3.5和jQuery mobile来构建iOS应用程序.我在大多数应用程序中禁用了滚动功能; 但是,当我选择输入字段时,iOS键盘会打开并向上滚动页面.我不想要这个功能.由于输入足够高,键盘不会覆盖它,我希望页面保持静止,而键盘覆盖页面的底部.
但是,所有发布的答案都不适合我,所以我会在这里发布我的解决方案.
我正在使用Phonegap创建一个iPad应用程序.该应用程序具有固定的横向方向和沿顶部运行的菜单,右上方有一个文本框.该应用程序是固定(全屏)尺寸,不需要滚动.
当用户触摸iOS 6右上角显示的文本框时,整个应用程序向左滑动,以便将文本框放在屏幕中央,向左推动整个应用程序并在右侧留下空白区域.
我该如何防止这种行为?
我目前将UIWebViewBounce设置为NO并使用以下代码来捕获touchstart事件:
document.body.addEventListener('touchmove', function(e) {
e.preventDefault();
}, false);
Run Code Online (Sandbox Code Playgroud)
我也在文本框本身上有这个,这似乎适用于iOS 5(尽管有口吃),但不适用于iOS 6:
$('#searchText').on("focus", function(event) {
window.scrollTo(0, 0);
});
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢.
在 iOS 8 的 Safari 上,当我专注于某个<input>元素时,整个页面会突然向下跳,然后返回到原来的位置。我的页面布局填满整个屏幕并且不打算滚动。
这似乎与此处和此处以及此视频中观察到的错误相同。这些情况下的解决方案适用于 Cordova 应用程序,但我不是在构建 Cordova 应用程序,我只是为 Mobile Safari 创建一个网站。
\n\n我已尝试按照此处的html, body { position: fixed; }建议添加添加,但这没有用。
我会尝试使用“禁用滚动”ontouchmove许多人之前提供的建议“禁用滚动”,但这不是用户触发的滚动,而是自动滚动。
我已尝试按照此处的onfocus="window.scrollTo(0, 0);"建议添加添加,但这不起作用,而且我不希望它对该答案给出评论:
\n\n\n这看起来应该可以工作,但在我的 iPhone 5S 和 iOS 8 的 Safari 上却不起作用。
\nevent.preventDefault()与您的解决方案结合起来似乎它肯定会起作用,但我仍然得到默认的滚动行为。\xe2\x80\x93 本尼 3 月 17 日 17:53
如何防止这种反弹?
\n在移动设备中,当我打开页面并选择一个输入框时,虚拟键盘就会打开,并且页面会自动滚动以将输入框置于中间。
我不想要这个动作。我在Google上搜索了很多答案,其中大多数建议在调整大小事件中手动调用以下javascript代码。
window.scrollTo(0,0)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时,它会使页面扭曲,就像页面向下滚动,然后很快又回来了。
有什么好的解决办法吗?谢谢。