//* Define variables and html elements const sidebar = document.querySelector('.sidebar'); const arrow = document.querySelector('.arrow'); //* Add event listeners sidebar.addEventListener('mouseout', () => { arrow.style.transitionDelay = '0s'; sidebar.style.transitionDelay = '0.05s'; }) sidebar.addEventListener('mouseover', () => { arrow.style.transitionDelay = '0.05s'; sidebar.style.transitionDelay = '0s'; })
* { margin: 0; padding: 0; box-sizing: border-box; } body { height: 100vh; width: 100vw; display: flex; } .sidebar { position: fixed; height: 100vh; background-color: black; width: 80px; transition: all 0.5s ease; z-index: 0; } .arrow { position: relative; left: 7.5px; right: 7.5px; top: 7.5px; width: 65px; height: 65px; fill: rgb(115, 151, 162); transition: all 0.5s ease; z-index: 2; } .arrowBackground { position: absolute; top: 0; width: 82px; height: 80px; background-color: rgb(30, 30, 30); z-index: 1; border: 2px solid rgb(50, 50, 50); transition: all 0.5s ease; } .sidebar:hover { width: 240px; } body:has(.sidebar:hover) .arrow { transform: rotate(180deg); left: 167.5px; } body:has(.sidebar:hover) .arrowBackground { left: 160px; }
<section class="sidebar"> <div class="icons"> <div> <svg class="icon arrow" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg> <div class="arrowBackground"></div> </div> </div> </section>
Apabila saya menuding di atas bar sisi, anak panah dan bar sisi mengambil masa 0.5 saat untuk menukar tetapi kelas latar belakang anak panah melakukannya serta-merta, saya tidak tahu mengapa, saya menjangkakan ia mengambil masa 0.5 saat untuk menukar tetapi saya tidak tahu bagaimana untuk betulkan
Saya cuba menyusun semula beberapa kod tetapi tidak berjaya, saya cuba menetapkan kelewatan peralihan dalam JavaScript tetapi masih tidak berfungsi
akan
left: 0;
添加到arrowBackground
jika tidak ia tidak tahu dari mana hendak menukar