Menurut penjelasan resmi Baidu Maps, berikut 4 kejadian yang bisa dipantau di halaman mobile H5:
sentuh mulai, sentuh bergerak, ujung sentuh, tekan lama
Dan jika event klik dipantau di peta, kode dalam event ini tidak akan dieksekusi di terminal seluler.
Ketika saya membuat persyaratan sebelumnya, saya memantau acara touchend untuk peta. Saya tidak pernah berpikir bahwa ketika saya menyeret peta, kode di touchend juga akan dieksekusi. Jadi kita perlu mensimulasikan event tap seperti yang ada di zepto untuk menyelesaikan masalah ini.
Kode saya adalah:
fungsi initMap(data dasar) { var mp = BMap.Map baru('peta'); var titik = BMap.Point baru( baseData.data.gardenLongitude, baseData.data.gardenLatitude ); / Simpan informasi objek sentuh var obj = {}; mp.addEventListener('touchstart', function (e) { obj.e = e.changedTouches ? e.changedTouches[0] : e; obj.target = e.target; obj.time = Tanggal.sekarang(); obj.X = obj.e.pageX; ; }); mp.addEventListener('touchend', fungsi (e) { objek.e = e.changedTouches ? e.changedTouches[0] : e; if (obj.target === e.target && // Jika lebih besar dari 750, Anda dapat melihat pertumbuhannya dengan menekan ((Date.now() - obj.time) < 750) && // Terapkan teorema Pythagoras untuk menilai, jika titik awal sentuh mencapai Jika titik akhir sentuh kurang dari 15, itu dapat dianggap sebagai peta yang diklik (Math.sqrt(Math.pow(obj.X - obj.e.pageX, 2) + Math. pow(obj.Y - obj.e.pageY, 2)) < 15) ) { // Peta diklik, lakukan beberapa operasi doSomething();Di atas adalah keseluruhan isi artikel ini, saya harap dapat bermanfaat untuk pembelajaran semua orang. Saya juga berharap semua orang mendukung VeVb Wulin Network.