Ich habe mit der Sprite-Animation von YouTube gespielt, aber es gibt ein Problem. backgroundPositionX
funktioniert nicht unter Firefox (funktioniert jedoch unter Chrome und IE8) ....__ Dies ist der Code: https://jsfiddle.net/74RZb/
Zusatzinfo: Das Problem ist, dass unter Firefox die Hintergrundposition nicht geändert wird (die Animation wird nicht wiedergegeben). Es gibt keine Fehler, nur die Hintergrundposition wird nicht geändert.
Firefox unterstützt backgroundPositionX nicht, unterstützt jedoch Hintergrundposition
So können wir so etwas machen:
psy.style.backgroundPosition = x+'px 0';
Dies legt die Hintergrundposition, X zuerst und dann Y fest.
Arbeitsbeispiel hier
Dies funktioniert in IE, FF und Chrome:
hintergrundposition: 0 Mitte;
Das hat bei mir funktioniert. NX
ist die Anzahl der Pixel in Achse X und NY
in Achse Y.
background-position: calc(NXpx) NYpx;
Verwendung wie folgt:
background-position: calc(100% - 20px) center; // working on chrome and ff
background-position-x: calc(100% - 20px); // working on ie
Hintergrundposition-x kann in Firefox funktionieren. Sie müssen lediglich eine feste Hintergrund-y-Position angeben. Hier ist eine Funktion, die ich geschrieben habe, um ein Farbband von links nach rechts zu verschieben. Anfangs funktionierte es nicht, wenn es nur eine Position-x-Spezifikation gab, gut funktionierte es in IE, aber nicht in FF. Das war meine Lösung. Es ist der eigentliche Code mit Kommentaren von meiner Site, der sowohl in IE als auch in FF funktioniert:
//starts ribbon motion at bottom of animation div
function startMotion() {
var ribbonMove = setInterval(function () { ribbonMotion() }, 50);
var x = 0;
var cycles = 0;
function ribbonMotion() {
//background position moves on the x plane and is fixed at 0 on the y plane (single plane specification does not work in FF)
document.getElementById("ribbon").style.backgroundPosition = x + "px" + " " + 0 + "px";
x++;
if (x == 800 || x==1600 || x==2400 ||x==3200) {
cycles++;
//sets number of cycles before motion stops (max 4 cycles)
}
if (cycles == 3) {
clearInterval(ribbonMove);
}
}
}
Sie können so etwas tun
Installieren Sie zunächst die Jquery-Migration
https://github.com/jquery/jquery-migrate/#readme
Fügen Sie diese in Ihrer HTML-Datei ein
Mit der $ .browser-Eigenschaft können Sie Browser ansprechen, auf die Sie Ihren Stil anwenden möchten
In diesem Fall kann die Hintergrundposition in eine von der Eigenschaft unterstützte backgroundPosition geändert werden
Verfügbare Flags sind - webkit - safari - opera - msie (für IE) - mozilla
Beispiel für IE oder Firefox
if ( $.browser.msie || $.browser.mozilla) {
$(".element").css('backgroundPosition', position + "px 0");
}
für Chrom
if ( $.browser.webkit) {
$(".element").css('backgroundPosition', position + "px 0");
}
Ich habe meine Arbeit und für alle IE
Prost