0
我已經開始使用CSS3進行動畫製作。如何動畫burgermenu - 交叉
我試圖創建一個動畫burgermenu,但結果是有點醜。 頂部和底部的小節向右平移一點。所以旋轉動畫並非真正平滑和正確。
這是我的代碼:
/* HTML */
<div id="burger">
<span id="burgerTop" class="burgerLineTop"></span>
<span id="burgerCenter" class="burgerLineCenter"></span>
<span id="burgerBottom" class="burgerLineBottom"></span>
</div>
/* CSS代碼*/
#burger {
position: absolute;
margin: 50px;
}
.burgerLineTop {
width: 50px;
height: 5px;
background: black;
position: absolute;
}
.burgerLineCenter {
width: 50px;
height: 5px;
background: black;
position: absolute;
top: 15px;
}
.burgerLineBottom {
width: 50px;
height: 5px;
background: black;
position: absolute;
top: 30px;
}
.burgerLineTopAnimation {
transform-origin: 0 0;
transition: all 500ms ease-in-out;
transform: rotate(45deg);
}
.burgerLineCenterAnimation {
transition: all 500ms ease-in-out;
opacity: 0;
}
.burgerLineBottomAnimation {
transform-origin: 0 0;
transition: all 500ms ease-in-out;
transform: rotate(-45deg);
}
/* JS */
var burgermenu = document.querySelector('#burger');
burgermenu.addEventListener('click', function() {
var burgerTop = document.querySelector('#burgerTop');
var burgerCenter = document.querySelector('#burgerCenter');
var burgerBottom = document.querySelector('#burgerBottom');
var burgerTopCL = burgerTop.classList;
var burgerCenterCL = burgerCenter.classList;
var burgerBottomCL = burgerBottom.classList;
burgerTopCL.contains('burgerLineTopAnimation') ? burgerTopCL.remove('burgerLineTopAnimation') : burgerTopCL.add('burgerLineTopAnimation');
burgerCenterCL.contains('burgerLineCenterAnimation') ? burgerCenterCL.remove('burgerLineCenterAnimation') : burgerCenterCL.add('burgerLineCenterAnimation');
burgerBottomCL.contains('burgerLineBottomAnimation') ? burgerBottomCL.remove('burgerLineBottomAnimation') : burgerBottomCL.add('burgerLineBottomAnimation');
});
也許我犯了一些錯誤的過渡起源......
我知道,有很多在的jsfiddle等代碼的例子,但我想學習CSS動畫等正確。所以我想明白爲什麼我的代碼不好,我應該更好。以及css動畫/ css如何真正起作用。
我希望你能幫助我:) 謝謝,並有一個良好的星期五。
感謝,但burgermenu將移動到頂部,因爲前50%... –
@TorbenG k,我正在修補它,讓他們留在同一個地方... –
@TorbenG更新了定位,使一切都以兩種狀態爲中心。那好些?還鞏固了你的CSS一點。 –