簡體   English   中英

瀏覽器縮放更改 window.scrollTop/document.scrollTop 行為

[英]Browser Zoom changes window.scrollTop/ document.scrollTop behaviour

我正在嘗試在用戶滾動過去時讀取頁面的當前 y 滾動以淡入/淡出元素。

我從這個站點嘗試了許多不同的解決方案,比如.scrollTop、.pageYOffset、.scrollY 等,使用 $(window) 和 $(document)、$("element"),將其轉換為百分比等等......

首先它們都工作正常,但是當我放大瀏覽器時,我得到的結果每次都會改變:

我有這個簡單的設置作為頁面

<div style="height: 800px"></div>
<h1 style="" id="test"> Test </h1>
<div style="height: 2000px"></div>

例如,閱讀卷軸 position:

$(window).scroll(function() {
console.log($(this).scrollTop());

當我向下滾動到測試 T 上方的 header 和 go 時,它顯示為 830px。 但是當我放大(嘗試過 chrome 和 firefox)時,首先我的控制台停止提供連續值並且似乎變得遲鈍(?)並且去同一個地方(T 正上方)返回一個不同的值(放大時更小) 取決於我的縮放比例,例如 500 像素。

有沒有解決方案,或者是否有另一種方法來實現我想要做的事情?

附加信息

  • 經過更多閱讀后,我知道使用 Ctrl+/- 縮放(例如更改字體大小)和使用觸摸板和 2 根手指進行縮放之間的區別。 這也改變了我得到的結果,所以有時當 window.scrollY 返回 800px 時元素出現,有時當它顯示 300px 時它開始出現。 我對此越來越感到困惑,也許有人可以在這里幫助我成為基礎;)

  • 遇到了這個:這個, 設置精確滾動 position 時捏放大聲音有點像我正在經歷的。

提前感謝您的任何見解!

我的問題已經過時了。

在閱讀了有關瀏覽器縮放與操作系統縮放、像素與像素密度等的更多信息后。

現在一切都說得通了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM