jquery - 移动 Safari 中的scrollTop 无法正常工作

标签 jquery mobile-safari scrolltop

我花了最后一个小时阅读了有关缩放和 .scrollTop() 的众多问题以及处理的变化,并尝试了至少 20 种不同的方法 - 所有看起来对我来说甚至远程可行的方法情况,我仍然只有部分解决方案。

我有一个包含三个字段和一个继续按钮的表单。继续按钮将打开表单的其余部分。当您选择文本字段时,Safari 移动版会放大。我对此并不特别介意。如果我阻止缩放,那么它可能太小而无法读取字段,如果我以可读的缩放级别加载,那么您只能看到页面的一部分,因此缩放行为是可以的。

情况是,单击按钮并显示表单的另一半后,窗口仍然放大,并且您正在查看页面的随机补丁。

根据我的想象,可能有两种处理方式:
1)点击按钮后实际缩小
2) 滚动到表单下一部分显示的位置

我尝试了所有我能找到的缩小和处理 meta 标签中的 viewport content width 确实会触发,但不能为我处理它,因为它只是使视口(viewport)变大或变小,但实际上根本不会缩小。这可能适用于其他人,但不适合我,因为我已经有很多样式,这可能使它不是一个选择。

我已经解决了滚动解决方案,并且 .scrollLeft() 工作正常,但是 .scrollTop() 无论我给它什么选择器都不起作用。我尝试过:

$('body').scrollTop
$('html').scrollTop
$('document').scrollTop
$('body,html,document').scrollTop
$('html:not(:animated),body:not(:animated)').scrollTop
$('html:not(:animated),body:not(:animated),document:not(:animated)').scrollTop
$('#content').scrollTop // that's a wrapper div
$(window).scrollTop

有人知道如何让 .scrollTop() 在 Safari Mobile 中工作吗?

最佳答案

我认为你试图以错误的方式解决问题。只需确保您的表单字段在移动视口(viewport)上具有 font-size: 16px,这样 Safari 就不会放大。

如果容器上有 position:fixed,scrollTop 也可能无法工作。

关于jquery - 移动 Safari 中的scrollTop 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042172/

相关文章:

ios - 如何阻止 iOS Safari 将光标保持在浏览器面板的左上角像素中?

javascript - 玩 super 卷轴中的固定元素

jquery - 下拉菜单在 IE7 中消失

javascript - 通过 JavaScript 添加图像 slider 计数器

ios - 移动 Safari 中的定位服务 : Don't Allow is saved. ..永远?即使重置

c# - 重定向到设备设置

jquery - Bootstrap 3 折叠滚动顶部

javascript - 如何使用 scrollTop 作为百分比而不是像素

javascript - 无法从 iframe 中找到 FileHiddenName

javascript - 创建类似 jQuery 风格的库