解决 Vue 项目的文本框在 IOS 上点击无法输入/点击无效 需要长按或者点击多次

发布于 2019-08-13 字数 1167 浏览 832 评论 0

近期开发的一个项目测试人员发现,在 IOS 上的文本框总是点击无法获取焦点,多次点击或者长按才能获取焦点,导致这个问题所在的原因是因为项目中引入了 FastClick 这个是解决移动端延迟 300 毫秒的优化。

解决 Vue 项目的文本框在 IOS 上点击无法输入/点击无效 需要长按或者点击多次

当使用 FastClick 时,输入框在 IOS 上点击输入调取手机自带输入键盘不灵敏,有时候甚至点不出来。而安卓上完全没问题。这个原因是因为 FastClick 的点击穿透。解决方法如下:

FastClick.prototype.focus = function (targetElement) {
  let length;
  if (targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
    length = targetElement.value.length;
    targetElement.focus();
    targetElement.setSelectionRange(length, length);
  } else {
    targetElement.focus();
  }
};

以上代码直接复制到引入 FastClick 的页面即可。

如果你对这篇文章有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助。

扫码二维码加入Web技术交流群

您暂时不能评论!

管理员开启了需要登录才能够评论,你可以免费注册一个本站的账号。

还没有评论!

目前还没有任何评论,快来抢沙发吧!