スライドメニュー

スライドメニュー

サンプルコード

HTML

<ul class="menu">
    <li class="arrow" id="prev"><</li>
    <li class="active" id="home"><a href="#">Home</a></li>
    <li class="hidden" id="business"><a href="#">Business</a></li>
    <li class="hidden" id="company"><a href="#">Company</a></li>
    <li class="hidden" id="contact"><a href="#">Contact</a></li>
    <li class="arrow" id="next">></li>
</ul>

CSS

.menu {
    display: flex;
    list-style: none;
    padding: 20px;
    background-color: #fff;
    align-items: center;
    justify-content: center;
    margin: 0;
    position: relative;
}
.menu li {
    padding: 10px 20px;
    margin: 0 5px;
    width: 25%;
    text-align: center;
    transition: all 1.5s ease;
    opacity: 1;
    transform: translateX(0);
    font-size: 0.9rem;
}
.menu li.hidden {
    opacity: 0;
    transform: translateX(-20px);
    position: absolute;
}
.menu li a {
    text-decoration: none;
    color: #333;
}
.arrow {
    cursor: pointer;
    user-select: none;
}
.hidden {
    display: none;
}
.active {
    background-color: #ddd;
    border-radius: 5px;
}

JavaScript

const menuItems = ['home', 'business', 'company', 'contact'];
let currentIndex = 0;

document.getElementById('prev').addEventListener('click', () => {
    document.getElementById(menuItems[currentIndex]).classList.remove('active');
    document.getElementById(menuItems[currentIndex]).classList.add('hidden');
            
    currentIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;
            
    document.getElementById(menuItems[currentIndex]).classList.remove('hidden');
    document.getElementById(menuItems[currentIndex]).classList.add('active');
});

document.getElementById('next').addEventListener('click', () => {
    document.getElementById(menuItems[currentIndex]).classList.remove('active');
    document.getElementById(menuItems[currentIndex]).classList.add('hidden');
            
    currentIndex = (currentIndex + 1) % menuItems.length;
            
    document.getElementById(menuItems[currentIndex]).classList.remove('hidden');
    document.getElementById(menuItems[currentIndex]).classList.add('active');
});

コメント