如何在根据窗口宽度/高度自动调整大小的网站中使用手机/手机键盘
How to work around the mobile/phone keyboard in a website that resizes automatically based on window width/height
我制作的Web应用程序经常通过(最近)CSS转换根据窗口调整大小。
对于台式电脑来说,这没什么大不了的。我只是每 50 毫秒运行一次调整大小测试代码,检查 window.innerWidth 和 window.innerHeight。(我在这里不使用"调整大小"事件,因为当用户调整窗口大小时,该事件可能会运行得太快/次数太多。
在手机上,我同时使用"调整大小"和"方向更改"事件。由于各种Android(Chrome/webview)/iOS错误,有时需要调整大小事件。效果很好。
问题是:众所周知,目前没有办法明确检测一些不同的仅限手机的事件,例如虚拟键盘弹出和弹出。因此,当弹出键盘时,这会触发 resize 事件,这会触发我的 resize 例程并导致应用程序窗口变得非常小。
"因此,当键盘弹出时,这会触发调整大小事件,这会触发我的调整大小例程并导致应用程序窗口变得非常小。"
解决此问题的一种方法是检测模糊并专注于文本/密码输入。
子问题:我们还需要防止用户在键盘可见时重新定向其设备的可能性 - 从而向调整大小例程发送不正确的数据。这可以通过在发生方向更改事件时模糊输入来处理。
示例代码:
if (gs.is_phone_or_tablet) {
window.keyboard_is_visible = false
$(document.body).on('focus', 'input[type="text"], input[type="password"]', function () {window.keyboard_is_visible = true})
$(document.body).on('blur' , 'input[type="text"], input[type="password"]', function () {window.keyboard_is_visible = false})
var hide_keyboard = function () {
if (document.activeElement == document.body) return
document.activeElement.blur ()
window.keyboard_is_visible = false
}
//window.addEventListener('resize' , hide_keyboard) // <-- for Webview <= 4.3 only..
window.addEventListener('orientationchange', hide_keyboard)
}
相关文章:
- JQuery手机.网站上只有一个https页面
- 适用于可在网络浏览器和智能手机上运行的网站的 MP3 播放器
- 从手机重定向时如何留在桌面网站(wordpress)
- 如何使用 html 将 Windows 手机(但不是桌面窗口)重定向到移动网站
- 手机网站在手机上太慢
- 如何将图像从网站保存到手机相册
- 将智能手机连接到网站
- 如何判断访问者是否正在通过手机访问网站
- 允许手机用户在不使用应用程序的情况下将文件从我的网站保存到他们的手机存储中
- 如何强制Opera Mini用户从手机上的其他浏览器查看我的网站
- 为什么我的网站在从手机打开时速度很慢,但在从桌面打开时运行良好
- Iphone手机网站上的文本缩小
- 通过远程网站读取智能手机传感器数据
- 带宽检查与视频网站(工作在手机和平板电脑)
- 在手机网站上获取手机号码
- 移动网站重定向,全站链接,没有cookie.Cookie似乎阻止了用户返回手机网站
- 如果用户想在安卓手机上打开网站,打开应用程序的google play商店链接
- 每次都重定向到手机网站
- 是否可以使用手机网站访问通话记录?
- 手机网站在iPhone和Android上运行良好,但在黑莓上就不行了