JQuery .click 事件后元素未居中(尽管进行了 transform-origin 调整)
Elements not centered after JQuery .click Event (despite transform-origin adjustment)
如下面的 JSfiddle 所示,点击事件发生后,两个 span(块)元素旋转 45 度,形成一个 "X"。然而,两个元素都被稍微向左拉,形成一个 "X",它与 parent 的真实 center-origin.
稍微 off-center
我将非常感谢演示如何在 parent 的真正中心放置我的 "X" 表单。另外,如果有人能在别处找到答案,我将不胜感激,因为我的搜索结果是空的。
目前我正在使用下面的"transform-origin"来形成点击事件后的"X":
transform-origin: 21% 50%;
没有它,事情真的很乱。
这是 JSfiddle:https://jsfiddle.net/STEEZENS/L74p1ok3/
HTML
<a href="#" id="hamburger-icon" title="Menu">
<span class="line line-1"></span>
<span class="line line-2"></span>
<span class="line line-3"></span>
我能够通过将 transform-origin
更改为绝对值 (px) 并在旋转之外添加 translateX
来补偿 (?)以前存在的翻译。
https://jsfiddle.net/voz8Lnhd/1/
#hamburger-icon .line {
display: block;
position: absolute;
width: 75px;
height: 4px;
border-radius: 4px;
background-color: white;
transition: all .3s ease 0s;
transform-origin: 21px center;
}
#hamburger-icon.active-rotate .line-1 {
transform: rotate(45deg) translateX(6px);
-webkit-transform: rotate(45deg) translateX(6px);
-moz-transform: rotate(45deg) translateX(6px);
}
#hamburger-icon.active-rotate .line-3 {
transform: rotate(-45deg) translateX(6px);
-webkit-transform: rotate(-45deg) translateX(6px);
-moz-transform: rotate(-45deg) translateX(6px);
}
如下面的 JSfiddle 所示,点击事件发生后,两个 span(块)元素旋转 45 度,形成一个 "X"。然而,两个元素都被稍微向左拉,形成一个 "X",它与 parent 的真实 center-origin.
稍微 off-center我将非常感谢演示如何在 parent 的真正中心放置我的 "X" 表单。另外,如果有人能在别处找到答案,我将不胜感激,因为我的搜索结果是空的。
目前我正在使用下面的"transform-origin"来形成点击事件后的"X":
transform-origin: 21% 50%;
没有它,事情真的很乱。
这是 JSfiddle:https://jsfiddle.net/STEEZENS/L74p1ok3/
HTML
<a href="#" id="hamburger-icon" title="Menu">
<span class="line line-1"></span>
<span class="line line-2"></span>
<span class="line line-3"></span>
我能够通过将 transform-origin
更改为绝对值 (px) 并在旋转之外添加 translateX
来补偿 (?)以前存在的翻译。
https://jsfiddle.net/voz8Lnhd/1/
#hamburger-icon .line {
display: block;
position: absolute;
width: 75px;
height: 4px;
border-radius: 4px;
background-color: white;
transition: all .3s ease 0s;
transform-origin: 21px center;
}
#hamburger-icon.active-rotate .line-1 {
transform: rotate(45deg) translateX(6px);
-webkit-transform: rotate(45deg) translateX(6px);
-moz-transform: rotate(45deg) translateX(6px);
}
#hamburger-icon.active-rotate .line-3 {
transform: rotate(-45deg) translateX(6px);
-webkit-transform: rotate(-45deg) translateX(6px);
-moz-transform: rotate(-45deg) translateX(6px);
}