ホームページ > 記事 > ウェブフロントエンド > jQuery と CSS3 の見事なハンバーガー変形アニメーション効果
簡単なチュートリアル
これは、jQuery と CSS3 を使用して作成されたクールなハンバーガー変形アニメーション特殊効果です。この特殊効果は、jQuery を通じてボタン イベントをアタッチし、CSS3 変換とアニメーションを通じてアニメーション効果を作成します。
使い方
HTML構造
このハンバーガー変形アニメーション特殊効果のHTML構造は以下の通りです:
<div class='container'> <div class='burger'> <div class='burger__line-top'></div> <div class='burger__line-mid'></div> <div class='burger__menu'> <p>MENU</p> </div> </div> </div>
CSSスタイル
ハンバーガーメニューボタンの基本スタイルは以下の通りです:
.burger { position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; width: 71px; height: 71px; cursor: pointer; } .burger__line-top { width: 100%; height: 8px; border-radius: 5px; background-color: #fff; box-shadow: 0 0 1px 0 #fff; } .burger__line-mid { margin-top: 17px; width: 100%; height: 8px; border-radius: 5px; background-color: #fff; box-shadow: 0 0 1px 0 #fff; } .burger__menu { margin-top: 10px; } .burger__menu p { text-align: center; font-size: 20px; font-family: 'Open Sans', sans-serif; font-weight: 900; color: #fff; text-shadow: 0 0 1px #fff; letter-spacing: 3px; }
6つのアニメーションは以下の通りです。スタイルで使用されます: activeTop、activeMid、activeMenu、reverseTop、reverseMid、reverseMenu。ハンバーガーボタンをそれぞれ変形したり初期状態に戻したりするために使用します。
JavaScript
この特殊効果は、jQuery コードを使用して、対応する要素の対応するクラスを追加および削除し、マウス クリック イベントをハンバーガー ボタンにバインドします。
'use strict'; $(document).ready(function () { var $burger = $('.burger'), $topLine = $('.burger__line-top'), $midLine = $('.burger__line-mid'), $menuLine = $('.burger__menu'), anim = false; var changeClasses = { addActive: function addActive() { for (var i = 0; i <= 2; i++) { $burger.children().eq(i).removeClass('reverseLine' + (i + 1)).addClass('activeLine' + (i + 1)); } }, addReverse: function addReverse() { for (var i = 0; i <= 2; i++) { $burger.children().eq(i).removeClass('activeLine' + (i + 1)).addClass('reverseLine' + (i + 1)); } } }; var timeouts = { initial: function initial(child, Y, rot, scale) { $burger.children().eq(child).css('transform', 'translateY(' + Y + 'px) rotate(' + rot + 'deg) scale(' + scale + ',1)'); }, afterActive: function afterActive() { var _this = this; // ES6 setTimeout(function () { _this.initial(0, 12, 45, 1.40); _this.initial(1, -12, -45, 1.40); _this.initial(2, 35, 0, 1); $burger.children().eq(2).css('opacity', '0'); anim = true; }, 1300); }, beforeReverse: function beforeReverse() { var _this2 = this; setTimeout(function () { for (var i = 0; i <= 2; i++) { _this2.initial(i, 0, 0, 1); } $burger.children().eq(2).css('opacity', '1'); anim = false; }, 1300); } }; $burger.on('click', function () { if (!anim) { changeClasses.addActive(); timeouts.afterActive(); } else if (anim) { changeClasses.addReverse(); timeouts.beforeReverse(); } }); });
上記は、jQuery と CSS3 による見事なハンバーガー変形アニメーションの特殊効果の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。