我想在我的網站上的SVG觸發旋轉動畫。它定義的工作,但問題是當我移動我的鼠標時,我懸停元素它取消動畫。旋轉動畫懸停,但移動鼠標懸停 - >取消
所以我有一個對象SVG元素:
<object type="image/svg+xml" data="branching4.svg" id="branching">
Your browser does not support SVG
</object>
這是一個漫長的SVG文檔,但這裏的樣式表連接到它:
#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);
}
您可以看到的jsfiddle
SVG的結構最後腳本:
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");
});
};
我也試過CSS,這是同樣的問題。
這裏是一個的jsfiddle:
https://jsfiddle.net/7f7wjvvt/
1問題:
我怎麼能在元素上移動鼠標時,流體旋轉過渡?
第二個問題:
怎樣纔可以有一個Y軸旋轉是留在現場,並沒有轉化到左側?嘗試在撥弄
第三問題:
爲什麼的jsfiddle顯示SVG以及在Firefox,而不是在鉻? 此外,透視似乎不能在鉻...工作?爲什麼?
任何想法?
的問題1.你可以嘗試添加一個標誌,定當動畫結束。你可以使用'transitionend'來聽一些CSS結束動畫:https://davidwalsh.name/css-animation-callback和https://developer.mozilla.org/en-US/docs/Web/Events/轉換終止 – GibboK