是否可以动画(使用转换)只有一种类型的CSS变换?
我有css:
- cell{
- transform: scale(2) translate(100px,200px);
- transition: All 0.25s;
- }
现在,我只想把尺度做成动画。
在这种情况下,我可以使用position:absolute和left / right属性,但是我还记得,translate()的性能要好得多。
我也想避免使用额外的html元素。
解决方法
是!您将它分成两个选择器,其中一个转换:无,然后触发CSS回流以应用更改(否则将被视为一个更改并将转换)。
- var el = document.getElementById('el');
- el.addEventListener('click',function() {
- el.classList.add('enlarged');
- el.offsetHeight; /* CSS reflow */
- el.classList.add('moved');
- });
- #el { width: 20px; height: 20px; background-color: black; border-radius: 100%; }
- #el.enlarged { transform: scale(2); transition: none; }
- #el.moved { transform: scale(2) translate(100px); transition: transform 3s; }
- <div id="el"></div>