快生活 - 生活常识大全

技巧单击和长按交互冲突解决方法


  看见标题的时候我知道你一定不相信,明明交互动作里有鼠标单击时也有鼠标长按时,怎么会有冲突呢?实际上长按后两个交互都会触发,所以,该如何解决?
  如果一个元件上既有单击交互,又有长按交互的时候,就会发生冲突,长按时2个交互都会触发。如下面左图:
  我们希望的正常效果是右图那样的,感谢小楼老师提供了解决的思路,为了让大家也理解思路,我给大家详细讲一下!
  要想解决这个问题,就要先明白什么是单击,什么是长按。
  单击:按下鼠标再松开鼠标,鼠标松开后触发交互内容。
  长按:按下鼠标达到一定时长后,触发交互内容。
  按时段分,整个流程可以分为2段:短按时段与长按时段。
  按操作分,整个流程有2个操作:按下鼠标,松开鼠标。
  开始之后,会同时执行鼠标单击时、鼠标松开时、鼠标长按时3个交互。
  鼠标单击事件触发:全局变量的初始值为0,按下鼠标后,如果还没进入长按,就不会改变变量,那么此时变量依旧是0,松开鼠标后判断变量是≠1的,所以触发鼠标单击事件。
  鼠标长按事件触发:按下鼠并且进入长按时段后,设置变量为1,并且会触发鼠标长按事件。松开鼠标后会去触发鼠标单击事件,可这个事件的条件是变量≠1,所以无法触发。
  最后,为了不影响下一次点击时的交互,要在鼠标松开时将变量重置为0。
网站目录投稿:笑柳