做有态度的前端团队

网易FEG前端团队

input.focus()在IOS上失效的解决方法

之前在iphone上做开发时遇到一个问题,在一般的正常浏览器上输入以下代码:

var apple = document.getElementById('abc');
apple.focus();

就能将焦点聚集在输入框上;但是在ios上不行

解决方案1

只有通过绑定在事件上的函数触发,才能聚焦,例如:

var apple = document.getElementById('abc');
button.addEventListener('click',function(){
 apple.focus();
});

但是不能将apple.focus()封装在函数中再由事件触发,这样也会失效

解决方案2:

input必须有父层,父层必须有触发硬件加速的属性,如果有translate的偏移 就更容易触发。
父层的父层也有硬件加速且有偏移,几乎就是100%触发

手机阅读请扫描下方二维码:

已有 1 条评论

  1. 大神,解决方案2,有木有参考代码,我写了一个貌似没起到作用,能否聚焦后弹出键盘呢

添加新评论

ali-40.gifali-41.gifali-42.gifali-43.gifali-44.gifali-45.gifali-46.gifali-47.gifali-48.gifali-49.gifali-50.gifali-51.gifali-52.gifali-53.gifali-54.gifali-55.gifali-56.gifali-57.gifali-58.gifali-59.gifali-60.gifali-61.gif