スクロールイベントは、バブリングの問題をキャンセルすることはできません

MDNに書いた、スクロールイベントはキャンセルできない泡立ち:https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event

私は現在、H5ページでは、ページ全体をビジネスをされて経験してるのサポートのページを切り替えるには(touchstart / touchmove / touchend、changePage())を拒否するだけでなく、ページ内(スクロール)をスクロールするには、特定のエリア(scrollRegion)をサポートする必要があります一覧を表示します。

スクロールすると、バブルは/ touchmove / touchendをtouchstart、その後changePage操作を実行します。

私の現在のソリューションは、親コンポーネントでtouchstart / touchmove / touchendイベントを監視することで、一度e.target指定scrollRegionは、changePage操作が行われていない、唯一のデフォルトのスクロール操作を行います。

それにscrollRegionを指定e.targetその判断、私は愚かな方法を考え、名前タグの最初のクラスでscrollRegionにあるどのようにすべて同じプレフィックスを追加「XXX-」、ちょうど私判定e.target

最初calssnameこの接頭辞を持っているかどうかは、することができます。

e.target.classList [0] .split( ' - ')[0] === 'XXX'。

そうするためのコード汚い感じが、ジュニアパートナーがバブリングスクロールを防止するためのより良い方法を持っている場合は、より良い方法を考えることはできません、コメントやプライベートの手紙、あなたに感謝することができます。

おすすめ

転載: www.cnblogs.com/catherinezyr/p/11374456.html