実現したいこと
テキストを2つ用意して文字をホバーすると二番目のテキストが下から出てきて一番目の表示されていた文字が上に上がって見えないようになり、ホバーを外すとまた元に戻るように実装しています。
ですが、ホバーを外した時は何も動きはなくまたホバーすると文字が入れ替わるような実装をしたいです。
<div class="hamburger-menu-list-container01"> <a href="#top-about" class="hamburger-menu-list01"> <span class="hamburger-menu-list-text01">テキスト01</span> <span class="hamburger-menu-list-text01">テキスト01</span> </a> <a href="#top-features" class="hamburger-menu-list01"> <span class="hamburger-menu-list-text01">テキスト02</span> <span class="hamburger-menu-list-text01">テキスト02</span> </a> <a href="#top-user-steps" class="hamburger-menu-list01"> <span class="hamburger-menu-list-text01">テキスト03</span> <span class="hamburger-menu-list-text01">テキスト03</span> </a> <a href="#top-products" class="hamburger-menu-list01"> <span class="hamburger-menu-list-text01">テキスト04</span> <span class="hamburger-menu-list-text01">テキスト04</span> </a> <a href="/shop/pages/howtouse" class="hamburger-menu-list01" target="_blank"> <span class="hamburger-menu-list-text01">テキスト05</span> <span class="hamburger-menu-list-text01">テキスト05</span> </a> <a href="#top-set-price" class="hamburger-menu-list01"> <span class="hamburger-menu-list-text01">テキスト06</span> <span class="hamburger-menu-list-text01">テキスト06</span> </a> </div>
.hamburger-menu-list-text01 { position: absolute; left: 0; display: block; height: 100%; /* 縦幅をボタンと同じにする */ width: 100%; /* 横幅をボタンと同じにする */ font-family: "Zen Kaku Gothic New", sans-serif; font-size: 1em; color: #000000; font-weight: 500; letter-spacing: 0.05em; white-space: nowrap; transition: all 0.3s; /*アニメーション実行時間 */ } /* ボタンのテキスト(デフォルトのテキスト) */ .hamburger-menu-list-text01:nth-child(1) { top: 0%; } /* ボタンのテキスト(隠れているテキスト) */ .hamburger-menu-list-text01:nth-child(2) { top: 100%; } /* ボタンホバーアクション */ .hamburger-menu-list01:hover .hamburger-menu-list-text01:nth-child(1), .hamburger-menu-list01.is-active .hamburger-menu-list-text01:nth-child(1) { top: -100%; transition: all 0.3s; } .hamburger-menu-list01:hover .hamburger-menu-list-text01:nth-child(2), .hamburger-menu-list01.is-active .hamburger-menu-list-text01:nth-child(2) { top: 0%; transition: all 0.3s; }
let n; document.addEventListener( "mouseenter", ({ target }) => { if ( target instanceof HTMLElement && (n = target.closest(".hamburger-menu-list01, .hamburger-menu-list02")) ) { n.classList.add("is-active"); } }, true ); document.addEventListener("transitionend", ({ target }) => { target.closest(".is-active")?.classList.remove("is-active"); }); document.addEventListener( "mouseout", ({ target }) => { setTimeout(() => { target.closest(".is-active")?.classList.remove("is-active"); }, 300); }, true );

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/01 01:37
2024/02/01 09:56