我在给汉堡菜单做动画。当我试图改变.burger-icon:before
-transform: translateX(20px)
中的X坐标时,它也改变了Y坐标。谢谢你,谢谢
下面是HTML:
<button class="menu-button" type="button" data-toggle="-menu" id="burger-button">
<span class="burger-icon"></span>
</button>
下面是我的CSS:
.menu-button.is-active .burger-icon {
transform: translateY(2px) rotate(135deg);
}
.menu-button.is-active .burger-icon:before {
transform: translateX(20px) translateY(10px) rotate(-45deg);
}
.menu-button.is-active .burger-icon:after {
transform: translateY(-19px) rotate(33deg);
}
3条答案
按热度按时间xpcnnkqh1#
当我尝试在.burger-icon:before -
transform: translateX(20px)
中更改X坐标时,它也会更改Y坐标。你的意思是当你指定 only
transform: translateY(10px)
时?是啊,当然有关系。
你在这里只改变了一个CSS属性的值,这个属性就是
transform
。如果您没有为不同的转换函数指定显式值,那么这些转换函数将采用其默认值。
ogsagwnx2#
我想我没听懂你的问题。
当我尝试在.burger-icon:before - transform中更改X坐标时:X轴(20 px)-它也改变了Y轴。
在你的代码中,你有:
你到底想说什么?如果你改变代码:
y坐标会改变吗?因为那样会很奇怪。但如果您将其更改为:
这是正常的,因为您消除了
translateY
转换,所以它返回到默认值(0)。也许你正在尝试通过JavaScript来改变transform的值,如下所示:
在这种情况下,就好像你将transform属性值设置为“translateX(35 px)"一样,所以我们的情况与上面解释的情况相同。
fcg9iug33#
我知道这个问题已经有几年了,但我想做一些类似的事情:改变X的平移而不改变Y的平移。
因为如果你设置transform:pixel(px);然后在另一个CSS规则集转换下:px(px);它将覆盖Y的平移,并将其设置回0。
我想出了一个技巧来做到这一点,但使用CSS variables。你可以做的是将转换设置为两个变量的值,并根据需要更改变量的值。