css - 重置 CSS 过渡

标签 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 时无法按预期工作。我需要更改什么?

最佳答案

您需要使用动画而不是过渡,并使用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>

关于css - 重置 CSS 过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27283300/

相关文章:

css - 在网页上关注并显示当前聚焦的元素

jquery - Bootstrap twitter Active Navigation Bar - 使用 JQuery 更改类名

css-transitions - 背面可见性在Firefox中无法正常工作(在Safari中可用)

html - 对于类似时间机器的效果,CSS3 动画、SVG 或 Canvas 中的哪一个表现最好?

css - 在悬停时缩放一个圆圈,保持边框的宽度

CSS前缀实现跨浏览器渐变

javascript - 如何让javascript在桌面而不是移动设备上运行一个功能

自动适应多张图片的javascript算法

twitter-bootstrap-3 - Bootstrap 3 导航栏无法正确转换

jquery - 如何让这个 slider 更流畅?