【发布时间】:2016-01-17 17:07:29
【问题描述】:
为了简单起见,我有一个div,默认情况下我会使用 JS 代码进行旋转。但后来我想添加一个:hover 类,以便在将鼠标悬停在它上面时进行翻译。问题是,要么新的变换不适用,要么旧的变换没有被保留。
我怎样才能让它工作?顺便说一句,我正在使用 LESS,所以如果有 LESS 的解决方案,我会很高兴听到它。
P.S. 角度是根据JS中兄弟的数量生成的。也许我可以用 LESS 做一个轮换,然后在那里做一个:hover?
document.getElementById("box").style.transform = "rotate(" + 40 + "deg)";
#box {
width: 50px;
height: 50px;
background-color: red;
transition: all 0.5s ease-in;
}
#box:hover {
background-color: blue;
transform: translate(50px) !important;
}
<div id="box">
</div>
【问题讨论】:
-
这就是 CSS 的工作方式,Less 在这里无济于事。您需要找到现有的转换并将新转换附加到它。
-
这里有个建议,不要用JS修改style属性,而是用JS写到
-
结果应该是
transform: translate(50px) rotate(40deg);,如果只在悬停时应用translate,其他属性会丢失。 -
@SaqibAmin,是的。确实,这是一个很好的方法,我正在考虑这个问题。但我希望 LESS 有另一种方法。
-
@mch,我知道,就是这样。
标签: javascript css transform