我想在我的网站上的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