Heim > Web-Frontend > CSS-Tutorial > Warum funktioniert meine JavaScript-Animationsfunktion nicht in Chrome, sondern im IE?

Warum funktioniert meine JavaScript-Animationsfunktion nicht in Chrome, sondern im IE?

Barbara Streisand
Freigeben: 2024-12-05 08:18:11
Original
347 Leute haben es durchsucht

Why Doesn't My JavaScript `animate` Function Work in Chrome, But Works in IE?

JS-Funktion animate funktioniert nicht in Chrome, aber im IE

Die bereitgestellte JavaScript-Funktion animate funktioniert nicht in Chrome, funktioniert aber wie erwartet im Internet Explorer . Um dieses Problem anzugehen, ist es notwendig, sich mit den Einschränkungen und potenziellen Konflikten zu befassen, die bei der Verwendung von Event-Handler-Inhaltsattributen auftreten.

Der Kern des Problems liegt in der Beschattung Ihrer globalen Funktion window.animate durch Element.prototype .animieren. Diese neue Funktion, die in Web Animations eingeführt wurde, erweitert die Elementschnittstelle und ermöglicht Animationen direkt auf Elementen auf folgende Weise:

elem.animate({ color: 'red' }, 2000);
Nach dem Login kopieren

Bei der Verarbeitung von Ereignissen mithilfe von Inhaltsattributen überschreibt der Bereich des Zielelements den globalen Bereich . Daher steht Ihr Funktionsname animate in Konflikt mit der neuen Methode Element.animate.

Um dieses Problem zu beheben, gibt es zwei mögliche Ansätze:

  1. Benennen Sie Ihre Funktion um:

Indem Sie den Namen Ihrer Funktion ändern, können Sie den Konflikt mit Element.prototype.animate vermeiden. Beispielsweise könnten Sie Folgendes verwenden:

function animate__() {
  var div = document.getElementById('demo');
  div.style.left = "200px";
  div.style.color = "red";
}
Nach dem Login kopieren
  1. Verwenden Sie die apply-Methode:

Alternativ können Sie die apply-Methode verwenden, um explizit anzugeben den richtigen Bereich für Ihre Animationsfunktion. Dieser Ansatz ist besonders nützlich, wenn Sie den Namen animate beibehalten müssen.

Ändern Sie Ihren Code wie folgt:

document.getElementById('demo').onclick = function() {
  animate.apply(document.getElementById('demo'));
};
Nach dem Login kopieren

Diese Zeile wendet den richtigen Bereich auf Ihre globale Animate-Funktion an, wenn sie durch ausgelöst wird das Onclick-Ereignis.

Das obige ist der detaillierte Inhalt vonWarum funktioniert meine JavaScript-Animationsfunktion nicht in Chrome, sondern im IE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage