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

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

发布于 2019-08-13 字数 1170 浏览 2395 评论 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 的页面即可。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

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

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

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

佚名

文章 0 评论 0

文江

文章 0 评论 0

2012013325

文章 0 评论 0

女中豪杰

文章 2 评论 0