Ich versuche, eine Rotationsanimation in einem SVG auf meiner Website auszulösen. Es funktioniert definitiv, aber das Problem ist, wenn ich meine Maus bewege, wenn ich das Element hebe, bricht es die Animation ab.Drehen Sie den Mauszeiger über die Maus, während Sie die Maus bewegen -> Abbrechen
So umfassen i ein Objekt svg Element:
<object type="image/svg+xml" data="branching4.svg" id="branching">
Your browser does not support SVG
</object>
, die ein langes SVG-Dokument ist aber hier ist Sheet mit ihm verbunden:
#rectangle1, #rectangle2, #rectangle3{
perspective: 1500px;
}
#rectangle1.flip .card, #rectangle2.flip .card, #rectangle3.flip .card {
transform: rotateX(180deg);
}
#rectangle1 .card, #rectangle2 .card, #rectangle3 .card{
transform-style:preserve-3d;
transition:1s;
}
#rectangle1 .face, #rectangle2 .face, #rectangle3 .face{
backface-visibility: hidden;
}
#rectangle1 #front1{
transform: rotateX(0deg);
}
#rectangle1 #back1{
transform: rotateX(180deg);
}
#rectangle2 #front2{
transform: rotateX(0deg);
}
#rectangle2 #back2{
transform: rotateX(180deg);
}
#rectangle3 #front3{
transform: rotateX(0deg);
}
#rectangle3 #back3{
transform: rotateX(180deg);
}
#rectangle1.flipped, #rectangle2.flipped, #rectangle3.flipped {
transform: rotateX(180deg);
}
Sie können die svg-Struktur in der jsfiddle sehen
Und schließlich das Skript:
window.onload=function() {
var svgDoc = $("#branching")[0].contentDocument; // Get the document object for the SVG
$(".st4", svgDoc).css("font-family", "robotolight,Helvetica Neue,Helvetica,Arial,sans-serif");
$("#rectangle1", svgDoc).hover(function(){
$(this, svgDoc).toggleClass("flip");
});
$("#rectangle2", svgDoc).hover(function(){
$(this, svgDoc).toggleClass("flip");
});
$("#rectangle3", svgDoc).hover(function(){
$(this, svgDoc).toggleClass("flip");
});
};
Ich habe auch mit CSS versucht, es ist das gleiche Problem. Hier
ist ein jsfiddle:
https://jsfiddle.net/7f7wjvvt/
1. Frage:
Wie kann ich eine Flüssigkeit drehen Übergang haben, wenn die Maus auf das Element zu verschieben?
2. Frage:
Wie kann ich eine Y Drehung, die an Ort und Stelle bleiben und nicht nach links übersetzen? Versuchen Sie es in der Geige
3. Frage:
Warum die jsfiddle die svg Anzeige auch in Firefox und nicht in Chrom? Auch scheint Perspektive in Chrom nicht zu funktionieren ... WARUM?
Irgendwelche Ideen?
für Frage 1. Sie einen Flag hinzuzufügen versuchen können, die bestimmte, wenn Animation Ende. Sie können die CSS-Endanimation mit 'transitionend' anhören, einige interessante Artikel: https://davidwalsh.name/css-animation-callback und https://developer.mozilla.org/en-US/docs/Web/Events/ transitionend – GibboK