android - acara touchmove cara melumpuhkan penatalan halaman
天蓬老师
天蓬老师 2017-05-16 13:35:17
0
1
809

Baru-baru ini, saya membuat fungsi yang serupa dengan AssistiveTouch pada iOS pada halaman H5: widget kecil yang digantung yang boleh dialihkan pada halaman dan secara automatik menjerap ke tepi apabila tidak digunakan.

Masalah yang timbul:

Pada telefon Android, apabila anda mengalihkan widget, halaman akan menatal dengan sewajarnya.

Oleh kerana untuk meningkatkan kelancaran penatalan halaman, penyemak imbas Chrome touchmove事件里不能用 event.preventDefault() menghalang penatalan halaman pada penyemak imbas Chrome baharu.

Acara mengikat baharu perlu dikendalikan seperti ini (tambah atribut passive: false)

document.addEventListener('click', onClick, {passive: false, capture: false});

Tetapi saya menggunakan react dan mengikat monitor secara terus

<p onTouchmove={::this.touchmove} >
</p>

Bagaimana untuk menghalang halaman daripada menatal apabila mengalihkan widget dengan touchmove?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(1)
Ty80

直接来。 资料在这里

Pengendali acara anda akan diberikan contoh SyntheticEvent, pembalut silang penyemak imbas di sekitar acara asli penyemak imbas. Ia mempunyai antara muka yang sama seperti peristiwa asli penyemak imbas, termasuk stopPropagation() dan preventDefault(), kecuali peristiwa berfungsi secara sama merentas semua penyemak imbas.

Jika anda mendapati bahawa anda memerlukan acara penyemak imbas asas atas sebab tertentu, hanya gunakan atribut nativeEvent untuk mendapatkannya. Setiap objek SyntheticEvent mempunyai atribut berikut:

<p onTouchmove={this.touchmove.bind(this)} ></p>

touchmove(event){
  event.stopPropagation();
  event.nativeEvent.stopImmediatePropagation();
}

或者
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan