javascript - 输入聚焦时在 iOS(和所有移动设备)上自定义滚动

标签 javascript android jquery ios

问题:

当输入被选中时,我希望屏幕滚动,以便焦点输入正好位于屏幕顶部。

我希望它能在 iOS 和所有其他移动设备上运行。


这是目前在 iOS 上发生的事情:

enter image description here


这就是我想要发生的...注意页面滚动到的位置:

enter image description here


我目前正在尝试的代码是:

$('#input').on('focus focusin', function(e) {
    e.preventDefault();
    $('html').animate({
        scrollTop: $('#anchor').offset().top
    }, 300);
})

此代码在桌面上运行良好,但一旦我在 iPhone 上加载该页面,它就完全停止工作,默认的滚动行为接管了——如第一个 gif 中所示。

最佳答案

所以您只需要它滚动以便输入的顶部成为屏幕的顶部?

我在输入上方添加了 2 像素的间隙,以便您仍然可以看到输入顶部的边框。

$('#input').on('focus', function(e) {
    e.preventDefault();
    $('html, body').animate({
        scrollTop: $(this).offset().top-2;
    }, 1000);
})

关于javascript - 输入聚焦时在 iOS(和所有移动设备)上自定义滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624446/

相关文章:

javascript - 如何在调用下一个 Javascript 函数之前更新浏览器?

android - 如何在另一个div中滚动一个div?

android - 为什么 Android NDK 会错过某些 API 级别?

javascript - 如何使用 Javascript 或 JQuery 在 HTML 中突出显示输入文本字段的一部分

jquery - 如何在悬停时使用 calc 旋转图像 CSS/Jquery

c# - 以编程方式从 .NET Webbrowser Control 的下拉列表中选择一个项目

javascript - 打印 Firefox/Chrome 后关闭选项卡(内容为 application/pdf)

android - 如何使用FTP或HTTP复制数据库文件

javascript - 脚本在 jQuery 中不起作用

javascript - stub 未执行回调(Javascript)