用另一个替换一个css3动画

时间:2013-08-22 14:26:54

标签: html5 css3 animation css-transitions

我希望能够为我的网站上的某个图像设置动画效果(背景位置的缓慢转换)。但在某次用户交互之后,我希望能够删除该动画并切换到另一个动画。我该如何做到这一点?

3 个答案:

答案 0 :(得分:0)

使用动画属性添加和删除类

.classOne {
    animation: one 5s forwards;
}
.classTwo {
    animation: two 3s forwards;
}

和javascript这样做

var obj = document.getElementById('animatedElement');
obj.onclick = function() {
    obj.classList.remove('classOne');
    obj.classList.add('classTwo');
}

等效的jQuery

$('#animatedElement').on("click", function() {
    $(this).removeClass('classOne').addClass('classTwo');
}

答案 1 :(得分:0)

您可以为其添加一个类:

.element{
    animation: first 1s forwards;
}
.element.clicked{
    animation: second 1s forwards;
}

这样,您就不必删除课程。使用jQuery,只需使用:

$('.element').click(function(){$(this).addClass('clicked');});

答案 2 :(得分:0)

使用:not选择器并切换元素类,您可以执行以下操作来更改当前元素动画:

#xpto:not(.anim) {
    -webkit-transition:background-position 1s ease;
    -moz-transition:background-position 1s ease;
    -o-transition:background-position 1s ease;
}

#xpto.anim {
    -webkit-transition:opacity 1s ease-in-out;
    -moz-transition:opacity 1s ease-in-out;
    -o-transition:opacity 1s ease-in-out;
}

#xpto:not(.anim):hover {
    background-position: 0 0;
}

#xpto.anim:hover {
    opacity: 0.2;
}

<强> See this working demo