Hintergrund Das Lösen von Browserkompatibilitätsproblemen ist eine sehr lästige Angelegenheit. Es sind nicht viele fortgeschrittene Techniken erforderlich, aber es muss für Entwicklungsanforderungen gelöst werden. Vor kurzem bin ich bei dem Entwicklungsprojekt auf einige Kompatibilitätsprobleme gestoßen. Ich hoffe, die Lösungen für diese Probleme aufzuzeichnen und sie beim nächsten Mal direkt zu verwenden, wenn ich auf sie stoße. Ich hoffe auch, dass es für andere hilfreich sein wird. Kompatibilitätsprobleme und -lösungen 1. Object-fit ist nicht mit IE11 und Edge kompatibel, einige CSS-Hacks können verwendet werden Verwenden Sie background-size und background-position, um object-fit zu ersetzen und den Bildstil festzulegen <img Klasse="Bild wird geladen" src="url"/> .Bild wird geladen { Breite: 100 %; Höhe: 100%; Übergang: alle 1en leicht; Objekt-Passung: Abdeckung; } Der obige Code kann wie folgt geändert werden: <div Klasse="loadingImage"></div> .Bild wird geladen { Breite: 100 %; Höhe: 100%; Hintergrundgröße: Abdeckung; Hintergrundposition: Mitte; Hintergrundbild: URL (URL); } Bei der Videowiedergabe kann object-fit:cover das Problem lösen, dass das Video nicht mit dem Bildschirm skaliert wird. <video Klasse="video"></video> .video { Breite: 100 %; Höhe: automatisch; Position: relativ; links: 50%; oben: 50 %; transformieren: übersetzen(-50 %, -50 %); Objekt-Passung: Abdeckung; } Sie können das folgende CSS verwenden, um das Video-Tag festzulegen und so das Problem zu lösen, dass Object-Fit mit IE und Edge nicht kompatibel ist. <video Klasse="video"></video> .video { Breite: 100 %; Höhe: automatisch; Position: relativ; links: 50%; oben: 50 %; transformieren: übersetzen(-50 %, -50 %); Objekt-Fit: Füllen; } 2. Das Ereignis window.onload führt die Methode aus, nachdem das Bild und andere Ressourcen geladen wurden, erkennt jedoch nicht, ob die Videoressourcen geladen sind. Sie können den folgenden Code verwenden, um festzustellen, ob das Video geladen ist <video id="video"></video> let video = document.getElementById('video') wenn (video.readyState === 4) { console.log('fertig!') } 3. Nachdem der CSS-Übergang ausgeführt wurde, wird das Übergangsereignis ausgelöst, es besteht jedoch Kompatibilität. Sie können den folgenden Code verwenden, um die Kompatibilität zwischen Browsern zu lösen Funktion checkTransitionEvent() { var el = document.createElement('div') var Übergänge = { 'Übergang':'Übergangsende', 'OÜbergang':'oÜbergangsende', 'MozTransition':'Übergangsende', 'WebkitTransition':'webkitTransitionEnd' } für (t in Übergängen) { wenn( el.style[t] !== undefiniert ){ Rückgabeübergänge[t]; } } } 4. Onwheel-Event-Kompatibilität Unterstützung() { let support = "onwheel" in document.createElement("div") ? "wheel" : // Moderne Browser unterstützen "wheel" document.onmousewheel !== undefiniert ? "mousewheel" : // Webkit und IE unterstützen zumindest "mousewheel" "DOMMausScroll"; Unterstützung bei der Rückgabe }, 5. Die Attribute wheelDelta und detail des Radereignisses haben in verschiedenen Browsern unterschiedliche Werte. Sie können den folgenden Code verwenden, um sie zu normalisieren . Siehe https://stackoverflow.com/questions/5527601/normalizing-mousewheel-speed-across-browsers var Radabstand = Funktion(evt){ wenn (!evt) evt = Ereignis; var w=evt.wheelDelta, d=evt.detail; wenn (d){ if (w) return w/d/40*d>0?1:-1; // Opera sonst return -d/3; // Firefox; TODO: kein /3 für OS X } sonst returniere mit 120; // IE/Safari/Chrome TODO: /3 für Chrome OS X }; var Radrichtung = Funktion (evt) { wenn (!evt) evt = Ereignis; zurückgeben (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1; }; 6. requestAnimationFrame-Kompatibilität let cancelAnimationFrame = window.cancelAnimationFrame || window.mozAnimationFrame abbrechen || Funktion(id) { Zeitüberschreitung(id) löschen }; let requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || Funktion (Rückruf) { return setTimeout(Rückruf, 1000 / 60) }; Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Detaillierte Untersuchung des MySQL-Verbundindex
>>: Tutorial zu XHTML-Webseiten
1. Installation der dekomprimierten Version (1). ...
Nachdem ich React eine Weile studiert habe, möcht...
Heute werde ich die grundlegendsten Funktionen von...
Docker-Attach-Befehl docker attach [options] 容器st...
1. MySQL-Transaktionskonzept MySQL-Transaktionen ...
Vorwort Jede gute Angewohnheit ist ein Schatz. Di...
GNU Parallel ist ein Shell-Tool zum parallelen Au...
Sehen wir uns zunächst ein Beispiel für die Speic...
Verwenden Sie navicat zum Testen und Lernen: Verw...
Lassen Sie uns zuerst die Datentabelle erstellen....
Der spezifische Code zur Implementierung von Skin...
HTML-Tag: hochgestellt In HTML definiert das <s...
Beim Erstellen eines Formulars in einem aktuellen...
1. IE-Browsermodus Hack-Logo 1. CSS-Hack-Logo Code...
Inhaltsverzeichnis 1. Prinzip des ganz linken Prä...