Apa perbedaan antara screenX/ Y, clientX/ Ydan 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.
Apa perbedaan antara screenX/ Y, clientX/ Ydan 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.
Jawaban:
Dalam JavaScript:
pageX, pageY, screenX, screenY, clientX, Dan clientYkembali 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.
pageXdan pageY:
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.
screenXdan screenY:
Relatif ke kiri atas layar fisik / monitor, titik referensi ini hanya bergerak jika Anda menambah atau mengurangi jumlah monitor atau resolusi monitor.
clientXdan clientY:
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
<!DOCTYPE html>
<html>
<head>
<script>
function show_coords(event)
{
var x=event.clientX;
var y=event.clientY;
alert("X coords: " + x + ", Y coords: " + y);
}
</script>
</head>
<body>
<p onmousedown="show_coords(event)">Click this paragraph,
and an alert box will alert the x and y coordinates
of the mouse pointer.</p>
</body>
</html>
Inilah gambar yang menjelaskan perbedaan antara pageYdan clientY.

Sama untuk pageXdan clientX, masing-masing.
pageX/Y koordinat relatif terhadap sudut kiri atas dari seluruh halaman yang diberikan (termasuk bagian yang disembunyikan dengan menggulir),
sedangkan clientX/Ykoordinat relatif terhadap sudut kiri atas bagian halaman yang terlihat, "terlihat" melalui jendela browser.
Anda mungkin tidak akan pernah membutuhkannya screenX/Y
screenX/Yitu?
pageX/pageYharus digunakan bukan clientX/clientY?
<html>elemen dalam piksel CSS.viewportpiksel CSS.screenpiksel 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, pageXdan pageYmasih relatif terhadap halaman dalam piksel CSS sehingga Anda dapat memperoleh koordinat mouse relatif terhadap halaman dokumen. Di sisi lain clientXdan clientYtentukan 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
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:
document.addEventListener('click', function(e) {
console.log(
'page: ' + e.pageX + ',' + e.pageY,
'client: ' + e.clientX + ',' + e.clientY,
'screen: ' + e.screenX + ',' + e.screenY)
}, false);
Click anywhere
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!
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.