Rumah hujung hadapan web tutorial js Penjelasan terperinci tentang kemahiran js mendapatkan kedudukan tetikus example_javascript

Penjelasan terperinci tentang kemahiran js mendapatkan kedudukan tetikus example_javascript

May 16, 2016 pm 03:26 PM
js dapatkan

Contoh dalam artikel ini menerangkan kaedah mendapatkan kedudukan tetikus dalam js. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Menggunakan javascript untuk mendapatkan kedudukan tetikus (kursor) pada halaman semasa digunakan dalam banyak situasi, seperti seret dan lepas, petua alat, dsb. Sudah tentu, kami masih perlu menghadapi masalah keserasian penyemak imbas di sini Pelayar yang berbeza mengendalikan atribut berkaitan ini secara berbeza Berikut ialah pengenalan terperinci kepada perbezaan dan penyelesaian akhir apabila penyemak imbas mengendalikan atribut ini.

Kod JavaScript adalah seperti berikut:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<script type="text/javascript">

// 说明:获取鼠标位置

// 整理:http://www.codebit.cn

// 来源:http://www.webreference.com

function mousePosition(ev){

if(ev.pageX || ev.pageY){

return {x:ev.pageX, y:ev.pageY};

}

return {

x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,

y:ev.clientY + document.body.scrollTop - document.body.clientTop

};

}

</script>

Salin selepas log masuk

Cara menggunakan:

1

2

3

4

5

document.onmousemove = mouseMove;

function mouseMove(ev){

 ev = ev || window.event;

 var mousePos = mousePosition(ev);

}

Salin selepas log masuk

Penerangan terperinci kod adalah seperti berikut:

Kita mesti mengisytiharkan objek evnet terlebih dahulu Tanpa mengira pergerakan, klik, tekan kekunci, dsb., evnet akan diaktifkan Dalam Internet Explorer, acara ialah pembolehubah global dan akan disimpan dalam window.event. Dalam firefox atau pelayar lain, acara akan diperolehi oleh fungsi yang sepadan. Apabila kami menetapkan fungsi mouseMove kepada document.onmousemove, mouseMove akan mendapat acara pergerakan tetikus.

Untuk membolehkan ev mendapatkan acara acara dalam semua penyemak imbas, "||window.event" tidak akan berfungsi di bawah Firefox kerana ev sudah mempunyai nilai yang ditetapkan. Dalam MSIE ev kosong, jadi anda mendapat window.event .

Oleh kerana kami perlu mendapatkan kedudukan tetikus beberapa kali dalam artikel ini, kami mereka bentuk fungsi MousePosition, yang mengandungi satu parameter: peristiwa.

Oleh kerana kami akan berjalan di bawah MSIE dan penyemak imbas lain, Firefox dan penyemak imbas lain menggunakan event.pageX dan event.pageY untuk mewakili kedudukan tetikus berbanding dokumen Jika anda mempunyai tetingkap 500*500 dan tetikus anda berada dalam Benar-benar di tengah, maka nilai pageX dan pageY adalah 250, dan jika anda menatal ke bawah 500, maka pageY akan menjadi 750.

MSIE adalah sebaliknya Ia menggunakan event.clientX dan event.clientY untuk menunjukkan bahawa tetikus adalah bersamaan dengan kedudukan tetingkap, bukan dokumen. Dalam contoh yang sama, jika anda menatal ke bawah 500, clientY masih 250, jadi kami perlu menambah sifat scrollLeft dan scrollTop berbanding dokumen. Akhir sekali, dokumen dalam MSIE tidak bermula pada 0,0, tetapi biasanya mempunyai sempadan kecil (biasanya 2 piksel Saiz sempadan ditentukan dalam document.body.clientLeft dan clientTop.

Kod lengkap:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<script type="text/javascript">

// 说明:获取鼠标位置

// 整理:http://www.codebit.cn

// 来源:http://www.webreference.com

function mousePosition(ev){

   if(ev.pageX || ev.pageY){

     return {x:ev.pageX, y:ev.pageY};

   }

   return {

     x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,

     y:ev.clientY + document.body.scrollTop - document.body.clientTop

   };

}

document.onmousemove = mouseMove;

function mouseMove(ev){

 ev = ev || window.event;

 var mousePos = mousePosition(ev);

   document.getElementByIdx('mouseXPosition').value = mousePos.x;

   document.getElementByIdx('mouseYPosition').value = mousePos.y;

}

</script>

Salin selepas log masuk

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Di mana untuk mendapatkan kod keselamatan Google Di mana untuk mendapatkan kod keselamatan Google Mar 30, 2024 am 11:11 AM

Di mana untuk mendapatkan kod keselamatan Google

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik

Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Dec 17, 2023 pm 06:55 PM

Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Dec 18, 2023 pm 03:39 PM

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok

Cara membuat carta candlestick saham menggunakan PHP dan JS Cara membuat carta candlestick saham menggunakan PHP dan JS Dec 17, 2023 am 08:08 AM

Cara membuat carta candlestick saham menggunakan PHP dan JS

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP

Bagaimana untuk memasang dua kad SIM pada Realme 12 Pro? Bagaimana untuk memasang dua kad SIM pada Realme 12 Pro? Mar 18, 2024 pm 02:10 PM

Bagaimana untuk memasang dua kad SIM pada Realme 12 Pro?

Hubungan antara js dan vue Hubungan antara js dan vue Mar 11, 2024 pm 05:21 PM

Hubungan antara js dan vue

See all articles