【发布时间】:2016-02-25 20:24:06
【问题描述】:
我正在尝试使用 CSS 转换将三行汉堡菜单中的图标设置为动画以跨越到向右箭头。第一个转换效果很好,但我坚持第二个:交叉箭头。
这是一个小提琴:
https://jsfiddle.net/v0fgvdg2/25
以及SCSS中的相关样式:
.threebar {
cursor: pointer;
margin-top: 33px;
margin-left: 33px;
.bar {
width: 70px;
height: 22px;
background: #000;
margin-bottom: 11px;
transition: all 0.5s ease;
&:nth-child(1) {
transform-origin: 50%;
}
&:nth-child(2) {
transform-origin: 50%;
}
}
&.cross {
.bar:nth-child(1) {
transform: translateY(75%) rotate(45deg);
}
.bar:nth-child(2) {
transform: translateY(-75%) rotate(-45deg);
}
.bar:nth-child(3) {
opacity: 0;
}
}
&.arrow {
.bar:nth-child(1) {
background: red;
transform: scaleX(0.5) translateY(50%) rotate(45deg);
}
.bar:nth-child(2) {
background: blue;
transform: scaleX(0.5) translateY(50%) rotate(-45deg);
}
.bar:nth-child(3) {
opacity: 0;
}
}
}
我无法真正理解如何将转换应用于箭头状态。
我希望右箭头类似于十字的左侧,因此是 scaleX(0.5),但这会产生扭曲形状的效果,而不是像我希望的那样简单地将其减半。
有人对如何思考这个问题有任何建议吗?
非常感谢您的帮助!
【问题讨论】:
-
this 这样的东西会不会不好? (右侧有轻微错位)
标签: css css-shapes css-transforms