Pelbagai kaedah untuk mendapatkan kedudukan tetikus berdasarkan kemahiran JavaScript_javascript

WBOY
Lepaskan: 2016-05-16 15:25:15
asal
1326 orang telah melayarinya

Dalam sesetengah operasi DOM, kami sering berurusan dengan kedudukan elemen interaksi tetikus adalah aspek yang sering digunakan beberapa ringkasan ringkas untuk mendapatkan koordinat kedudukan klik tetikus Tiada pernyataan khas bahawa kod itu diuji dan serasi di bawah IE8, FireFox dan Chrome
.

Koordinat kedudukan klik tetikus

berbanding dengan skrin

Jika ia melibatkan klik tetikus untuk menentukan kedudukan, ia adalah agak mudah Selepas mendapatkan peristiwa klik tetikus, peristiwa screenX dan screenY memperoleh kedudukan klik berbanding dengan margin kiri dan atas skrin tidak dipertimbangkan. Pelayar yang berbeza Prestasinya agak konsisten.

function getMousePos(event) {
      var e = event || window.event;
      return {'x':e.screenX,'y':screenY}
    } 
Salin selepas log masuk

Berkaitan dengan tetingkap penyemak imbas

Kod mudah boleh dilaksanakan, tetapi ini tidak mencukupi, kerana dalam kebanyakan kes kita ingin mendapatkan koordinat kedudukan klik tetikus berbanding tetingkap penyemak imbas Atribut clientX dan clientY bagi acara tersebut masing-masing mewakili koordinat kedudukan klik tetikus berbanding dengan dokumen Jidar kiri, jidar atas. Jadi begitu juga kami menulis kod seperti ini

function getMousePos(event) {
      var e = event || window.event;
      return {'x':e.clientX,'y':clientY}
    } 
Salin selepas log masuk

Dokumen Relatif

Tiada masalah dengan ujian mudah, tetapi clientX dan clientY memperoleh koordinat berbanding skrin semasa, mengabaikan faktor menatal halaman Ini berguna dalam banyak keadaan, tetapi apabila kita perlu mempertimbangkan penatalan halaman, iaitu, berbanding dengan dokumen ( Apakah yang perlu saya lakukan jika koordinat unsur badan) ditentukan? Cuma tambahkan anjakan penatalan Seterusnya kita cuba mengira anjakan penatalan halaman.

Malah, masalahnya akan menjadi lebih mudah di bawah Firefox, kerana Firefox menyokong atribut pageX dan pageY Kedua-dua atribut ini sudah mengambil kira penatalan halaman.

Dalam Chrome, anda boleh mengira anjakan tatal halaman melalui document.body.scrollLeft dan document.body.scrollTop, manakala dalam IE, anda boleh mengira anjakan tatal halaman melalui document.documentElement.scrollLeft dan document.documentElement.scrollTop

function getMousePos(event) {
      var e = event || window.event;
      var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
      var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
      var x = e.pageX || e.clientX + scrollX;
      var y = e.pageY || e.clientY + scrollY;
      //alert('x: ' + x + '\ny: ' + y);
      return { 'x': x, 'y': y };
    } 
Salin selepas log masuk

Kandungan di atas adalah pelbagai kaedah untuk mendapatkan kedudukan tetikus berdasarkan JavaScript yang diperkenalkan oleh editor saya harap anda menyukainya.

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan