收藏
回答

input隐藏后留有残影,导致再次显示聚焦失效,今天搞一天没搞定,有遇到的吗?

大致就是input在页面load时默认隐藏,然后根据用户交互显示,自动聚焦,用户完成操作后隐藏。循环进入下一次交互。

大致循环交互几次,input在隐藏之后就有残影,残影有永久聚焦状态,导致真身input聚焦事件失效,无法获取焦点。


差不多的代码有些页面没问题,有些页面有问题,Android上有问题,iOS没问题。在Android上点10次左右可复现,有时候需要点20多次。

代码片段:https://developers.weixin.qq.com/s/9BqC0Rm37Wj9

最后一次编辑于  2020-08-25
回答关注问题邀请回答
收藏

3 个回答

  • brave
    brave
    2020-08-25

    提供一下可以复现的代码片段 https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-08-25
    有用 1
    回复 1
    • 郑旭东
      郑旭东
      2020-08-25
      已提供
      2020-08-25
      回复
  • 郑旭东
    郑旭东
    2020-08-25

    今天又试了一天,大概定位了问题。因为设置focus响应时间很长,如果focus没有响应完毕就去隐藏input,就会有几率导致input残影。所以在开始响应focus时要加标志,等focus响应完毕之后,才允许隐藏input。问题解决。


    focus的响应太慢了,可能是调取原生控件或者是弹出键盘的损耗导致的,希望能优化一下。

    2020-08-25
    有用
    回复 2
    • 李政
      李政
      2020-09-09
      请问如何确定focus响应完毕?
      2020-09-09
      回复
    • 郑旭东
      郑旭东
      2020-09-10
      设置focus时加标志focusing=true,在bindfocus事件回调里设置focusing=false。隐藏input时先判断下focusing,如果是true,不执行隐藏。
      2020-09-10
      回复
  • Admin ²º²⁴
    Admin ²º²⁴
    2020-08-25

    wxml里面用hide=的吗?全换wx:if试试

    2020-08-25
    有用
    回复 1
    • 郑旭东
      郑旭东
      2020-08-25
      wxml的hide和css的visibility效果相同如上。用wx:if残影更严重
      2020-08-25
      回复
登录 后发表内容
问题标签