So beheben Sie das Problem der Größenänderung eines festen Elements beim Zoomen auf Touchscreen-Geräten
Bei der Webentwicklung ist es wichtig, die Konsistenz von zu wahren Elemente unabhängig von der Interaktion des Benutzers. Beim Arbeiten mit festen Elementen auf Touchscreens kann das Zoomen jedoch zu unerwarteten Größenänderungsproblemen führen.
Beachten Sie diesen Codeausschnitt:
<code class="html"><div id="fixed"> <p>Some content</p> </div></code>
<code class="css">#fixed { height: 150px; position: fixed; top: 0; left: 0; z-index: 10000; }</code>
Auf Touchscreens, wenn ein Benutzer zum Vergrößern drückt , wird das feste Element zusammen mit dem Rest des Inhalts vergrößert. Bei übermäßigem Zoomen kann das Element jedoch überdimensioniert werden und andere Inhalte überlappen. Um dieses Problem zu beheben, müssen wir verhindern, dass sich die Größe unseres festen Elements während Zoomereignissen ändert.
Die Lösung besteht darin, die Skalierung und Position des Elements basierend auf der Zoomstufe des Benutzers neu zu berechnen. Wir können dies erreichen, indem wir die CSS-Transformation und -Position des Elements während Scroll-Ereignissen kontinuierlich aktualisieren:
<code class="javascript">window.addEventListener('scroll', function(e) { // Calculate the zoom factor. var zoom = window.innerWidth / document.documentElement.clientWidth; // Apply the zoom factor as a CSS3 transform. el.style["transform"] = "scale(" + zoom + ")"; });</code>
<code class="javascript">// Reset the element's position. el.style.left = window.pageXOffset + 'px'; el.style.bottom = document.documentElement.clientHeight - (window.pageYOffset + window.innerHeight) + 'px';</code>
Dieser Ansatz skaliert das Element effektiv auf seine ursprüngliche Größe zurück und passt seine Position unabhängig vom Zoom entsprechend an Ebene.
Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass sich die Größe fester Elemente während des Touchscreen-Zoomens ändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!