Heim >Web-Frontend >CSS-Tutorial >Warum funktioniert das Festlegen des Transformationsursprungs für eine SVG-Gruppe in Firefox nicht?
Das Festlegen des Transformationsursprungs für die SVG-Gruppe in Firefox funktioniert nicht.
Bei der Verwendung von Transformationsursprung in Firefox ist ein Problem aufgetreten (Version 18, andere Versionen). nicht getestet). WebKit-Browser funktionieren wie erwartet. Ich habe versucht, den Ursprung auf die Mitte der Gruppe festzulegen, aber nichts, was ich bisher versucht habe, hat funktioniert.
Hier ist der Code:
#test { -webkit-transform-origin: 50% 50%; transform-origin: center center; -webkit-animation: prop 2s infinite; animation: prop 2s infinite; } @-webkit-keyframes prop { 0% { -webkit-transform: scale(1, 1); } 20% { -webkit-transform: scale(1, .8); } 40% { -webkit-transform: scale(1, .6); } 50% { -webkit-transform: scale(1, .4); } 60% { -webkit-transform: scale(1, .2); } 70% { -webkit-transform: scale(1, .4); } 80% { -webkit-transform: scale(1, .6); } 90% { -webkit-transform: scale(1, .8); } 100% { -webkit-transform: scale(1, 1); } } @keyframes prop { 0% { transform: matrix(1, 0, 0, 1, 0, 0); } 20% { transform: matrix(1, 0, 0, .8, 0, 0); } 40% { transform: matrix(1, 0, 0, .6, 0, 0); } 50% { transform: matrix(1, 0, 0, .4, 0, 0); } 60% { transform: matrix(1, 0, 0, .2, 0, 0); } 70% { transform: matrix(1, 0, 0, .4, 0, 0); } 80% { transform: matrix(1, 0, 0, .6, 0, 0); } 90% { transform: matrix(1, 0, 0, .8, 0, 0); } 100% { transform: matrix(1, 0, 0, 1, 0, 0); } }
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 16 16"> <g>
Lösung
Ich versuche, ein einfaches Zahnrad mithilfe von CSS um seinen Mittelpunkt zu drehen wandelt SVG-Grafiken um. Ich habe das gleiche Problem wie Sie in Firefox; transform-origin scheint keine Wirkung zu haben.
Die Lösung besteht darin, die ursprüngliche SVG-Form so zu zeichnen, dass ihr Mittelpunkt bei der Koordinate 0 liegt. 0:
<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400"> <rect>
Fügen Sie dann eine Gruppe darum herum hinzu und schwenken Sie es an die gewünschte Stelle:
<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400"> <g transform="translate(150, 100)"> <rect>
Jetzt können Sie CSS-Transformationen anwenden, die in Firefox Works funktionieren sollten (ich verwende JavaScript). um HTML-Tags basierend auf Benutzeraktionen hinzuzufügen Denken Sie daran, eine Klasse (js-rotateObject) hinzuzufügen und mit Minimizr zu prüfen, ob der Browser Transformationen und Transformationen verarbeiten kann (.csstransforms.csstransitions):
#myObject { transform: rotate(0deg); transition: all 1s linear; } .csstransforms.csstransitions.js-rotateObject #myObject { transform: rotate(360deg); }
Ich hoffe, das hilft.
Das obige ist der detaillierte Inhalt vonWarum funktioniert das Festlegen des Transformationsursprungs für eine SVG-Gruppe in Firefox nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!