不能在缩放0和1之间使用css转换

Can't transition between scale 0 and 1 with css transitions

本文关键字:css 转换 之间 缩放 不能      更新时间:2023-09-26

我想让一个图像在x中开始向下缩放,然后在添加类时(通过javascript)在x中向上动画。我使用的模式对旋转这样的事情很有效,但我认为这只是因为旋转了整整360度。我不知道为什么这不起作用:

CSS:

.scaleXStart {
    visibility: hidden;
    z-index: 0;
    transform:scaleX(.5);
}
.scaleXEnd {
    z-index: 3;
    transform: scaleX(2);
    transition: transform 1s;
}
Javascript:

a = document.querySelector('#myDiv');
a.className = 'scaleXStart';
a.className = 'scaleXEnd';

我认为这将工作,因为它是添加,然后删除一个类,所以scaleX属性将被设置为0,然后1,但这是不工作。谢谢你告诉我为什么

问题是,它从来没有机会得到开始类,它直接到结束类。将结束类更改设置为超时(甚至为零毫秒!)将欺骗它同时执行两个类更改:

function anim(){
    a = document.querySelector('#myDiv');
    a.className = 'scaleXStart';
    setTimeout(function(){a.className = 'scaleXEnd';}, 0)
}
function anim2(){
    a = document.querySelector('#myDiv');
    a.className = 'scaleXStart';
    a.className = 'scaleXEnd';
}

明白我的意思了吧:http://jsfiddle.net/shomz/nzJ8j/