重置CSS转换

时间:2014-12-03 23:00:50

标签: css css-transitions

我想使用CSS转换调整元素大小,然后将元素重置为原始大小并重新启动动画。这是代码:

$('#Bar').css('transition', 'none');
$('#Bar').css('-webkit-transition', 'none');
$('#Bar').css('width', 200);
$('#Bar').css('transition', 'width 3s');
$('#Bar').css('-webkit-transition', 'width 3s');
$('#Bar').css('width', 0);

jsFiddle是 here 。如您所见,当您使用javascript单击调整大小按钮时,元素会调整大小并重新开始动画。但是,它使用CSS无法按预期工作。我需要改变什么?

感谢。

1 个答案:

答案 0 :(得分:3)

您需要使用动画而不是过渡并使用animation: name 5s forwards;。我为你做了一个例子http://jsfiddle.net/xsozar7m/4/

CSS:

#box {
    width: 100px;
    background: red;
    height: 20px;
    position: relative;
}
.active {
    height: 20px;
    background: red;
    position: relative;
    -webkit-animation: mymov 5s forwards;
    animation: mymov 5s forwards;
}

/* Chrome, Safari, Opera */

@-webkit-keyframes mymov {
    from {width: 100px;}
    to {width: 0px;}
}

@keyframes mymov {
    from {width: 100px;}
    to {width: 0px;}
}

使用Javascript:

$('button').on('click', function(){
   $('#box').removeClass('active');
setTimeout(function() {
    $('#box').addClass('active');
},10);
});

HTML:

 <div id="box"></div>
 <button>Start</button>