小编ske*_*s88的帖子

如果您触摸然后移入元素,则不会出现pointerenter事件

我正在尝试构建一个 React 应用程序,用户触摸一个元素,然后在按住的同时移动到相邻元素。当用户触摸第一个元素时,pointerover 和pointerenter 事件会触发,但当用户将指针移动到相邻元素时,不会触发。我想知道指针何时进入任何元素,无论触摸是否从该元素开始。(如果指针元素是鼠标而不是触摸,则此点和拖动行为确实按我的预期工作。)

尝试各种事件的示例代码笔:https://codepen.io/skedwards88/pen/OJOXwRm如果您使用鼠标,则当您输入元素时,即使单击鼠标然后将其拖入元素,也会触发pointerover和pointerenter事件元素。(这是我想要的行为。)但是,如果您使用触摸,当您按下然后将触摸移动到不同的元素时,不会为第二个元素触发pointerover和pointerenter。

来自 codepen 的代码

JSX


function App() {

  function myF(e, myv) {
    // e.preventDefault()
    console.log(`POINTER ${myv}`)
  }


  return (
    <div className="App">

      <div>
        <div onPointerMove={(e) => myF(e, "a")}>pointer move</div>
        <div onPointerMove={(e) => myF(e, "b")}>pointer move</div>
        <div onPointerOver={(e) => myF(e, "a")}>pointer over</div>
        <div onPointerOver={(e) => myF(e, "b")}>pointer over</div>
        <div onPointerEnter={(e) => myF(e, "a")}>pointer enter</div>
        <div onPointerEnter={(e) => myF(e, "b")}>pointer enter</div>
        <div onPointerMoveCapture={(e) => myF(e, "a")}>pointer move capture</div>
        <div onPointerMoveCapture={(e) => myF(e, "b")}>pointer move capture</div>
      </div> …
Run Code Online (Sandbox Code Playgroud)

javascript touch reactjs pointer-events

5
推荐指数
1
解决办法
1827
查看次数

标签 统计

javascript ×1

pointer-events ×1

reactjs ×1

touch ×1