Apa perbedaan antara screenX
/ Y
, clientX
/ Y
dan pageX
/ Y
?
Juga untuk iPad Safari, apakah perhitungannya sama seperti pada desktop — ATAU ada beberapa perbedaan karena viewport?
Akan lebih bagus jika Anda bisa memberi saya contoh.
javascript
ipad
safari
mouse-position
hmthr
sumber
sumber
Jawaban:
Dalam JavaScript:
pageX
,pageY
,screenX
,screenY
,clientX
, DanclientY
kembali nomor yang menunjukkan jumlah “piksel CSS” fisik titik adalah dari titik acuan. Titik kejadian adalah tempat pengguna mengklik, titik referensi adalah titik di kiri atas. Properti ini mengembalikan jarak horizontal dan vertikal dari titik referensi itu.pageX
danpageY
:Relatif ke kiri atas area konten yang sepenuhnya diberikan di browser. Titik referensi ini berada di bawah bilah URL dan tombol kembali di kiri atas. Titik ini bisa berada di mana saja di jendela browser dan benar-benar dapat mengubah lokasi jika ada halaman yang dapat digulir tertanam di dalam halaman dan pengguna memindahkan scrollbar.
screenX
danscreenY
:Relatif ke kiri atas layar fisik / monitor, titik referensi ini hanya bergerak jika Anda menambah atau mengurangi jumlah monitor atau resolusi monitor.
clientX
danclientY
:Relatif ke tepi kiri atas area konten ( viewport ) dari jendela browser. Titik ini tidak bergerak bahkan jika pengguna memindahkan bilah gulir dari dalam browser.
Untuk visual yang didukung browser properti mana:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
w3schools memiliki interpreter dan editor Javascript online sehingga Anda dapat melihat apa yang dilakukan masing-masing
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
sumber
Inilah gambar yang menjelaskan perbedaan antara
pageY
danclientY
.Sama untuk
pageX
danclientX
, masing-masing.pageX/Y
koordinat relatif terhadap sudut kiri atas dari seluruh halaman yang diberikan (termasuk bagian yang disembunyikan dengan menggulir),sedangkan
clientX/Y
koordinat relatif terhadap sudut kiri atas bagian halaman yang terlihat, "terlihat" melalui jendela browser.Lihat Demo
Anda mungkin tidak akan pernah membutuhkannya
screenX/Y
sumber
screenX/Y
itu?pageX/pageY
harus digunakan bukanclientX/clientY
?<html>
elemen dalam piksel CSS.viewport
piksel CSS.screen
piksel dalam perangkat.Mengenai pertanyaan terakhir Anda jika perhitungannya serupa pada browser desktop dan seluler ... Untuk pemahaman yang lebih baik - pada browser seluler - kita perlu membedakan dua konsep baru: viewport tata letak dan viewport visual . Tampilan visual adalah bagian dari halaman yang saat ini ditampilkan di layar. Layout viewport adalah sinonim untuk halaman penuh yang diberikan pada browser desktop (dengan semua elemen yang tidak terlihat pada viewport saat ini).
Pada browser seluler,
pageX
danpageY
masih relatif terhadap halaman dalam piksel CSS sehingga Anda dapat memperoleh koordinat mouse relatif terhadap halaman dokumen. Di sisi lainclientX
danclientY
tentukan koordinat mouse dalam kaitannya dengan viewport visual .Ada alur stackoverflow lain di sini mengenai perbedaan antara viewport visual dan viewport layout: Perbedaan antara viewport visual dan viewport tata letak?
Sumber lain yang bagus: http://www.quirksmode.org/mobile/viewports2.html
sumber
Apa yang membantu saya adalah menambahkan acara langsung ke halaman ini dan mengklik sendiri! Buka konsol Anda di alat pengembang / Firebug dll dan rekatkan ini:
Dengan cuplikan ini, Anda dapat melacak posisi klik saat Anda menggulir, memindahkan jendela browser, dll.
Perhatikan bahwa pageX / Y dan clientX / Y sama ketika Anda digulir sampai ke atas!
sumber
Perbedaan antara keduanya akan sangat tergantung pada browser apa yang saat ini Anda maksud. Masing-masing menerapkan properti ini secara berbeda, atau tidak sama sekali. Quirksmode memiliki dokumentasi yang bagus mengenai perbedaan browser sehubungan dengan standar W3C seperti DOM dan Acara JavaScript.
sumber