Bagaimana untuk Menentukan Peratusan Tatal Menegak dengan Tepat dalam JavaScript Merentasi Pelayar?

DDD
Lepaskan: 2024-10-18 17:18:30
asal
509 orang telah melayarinya

How to Accurately Determine Vertical Scroll Percentage in JavaScript Across Browsers?

Menentukan Peratusan Tatal Menegak Silang Penyemak Imbas dalam JavaScript

Dalam pembangunan web, selalunya penting untuk memantau kedudukan tatal menegak pengguna. Walau bagaimanapun, mencari kaedah serasi yang tepat dan merentas penyemak imbas boleh menjadi mencabar.

Penyelesaian Silang Penyemak Imbas

Coretan kod yang disediakan menawarkan pendekatan merentas penyemak imbas untuk mengira peratusan skrol menegak:

<code class="javascript">var h = document.documentElement, 
    b = document.body,
    st = 'scrollTop',
    sh = 'scrollHeight';

var percent = (h[st]||b[st]) / ((h[sh]||b[sh]) - h.clientHeight) * 100;</code>
Salin selepas log masuk

Kod ini boleh dilaksanakan dengan menyimpan HTML dan elemen badan dalam pembolehubah h dan b, bersama-sama dengan nama rentetan untuk scrollTop dan scrollHeight (st dan sh). Peratusan skrol kemudian dikira dengan membahagikan kedudukan skrol menegak semasa dengan ketinggian viewport, diskalakan kepada 100%.

Pelaksanaan jQuery

Bagi mereka yang memilih jQuery, kod berikut boleh digunakan:

<code class="javascript">$(window).on('scroll', function(){
  var s = $(window).scrollTop(),
      d = $(document).height(),
      c = $(window).height();

  var scrollPercent = (s / (d - c)) * 100;
  
  console.clear();
  console.log(scrollPercent);
});</code>
Salin selepas log masuk

Kaveat

Perlu diingat bahawa penyelesaian ini mungkin tidak mencapai 100% pada penyemak imbas mudah alih moden disebabkan oleh tingkah laku sembunyi automatik UI penyemak imbas.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Peratusan Tatal Menegak dengan Tepat dalam JavaScript Merentasi Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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