NodeJS 如何保持下拉菜单可见Vue,js Tailwind

wvyml7n5  于 2023-04-29  发布在  Node.js
关注(0)|答案(1)|浏览(150)

我想用Vue做一个下拉菜单。js和Tailwind css,当我将鼠标悬停在类型链接上时,下拉菜单会出现,但当我把鼠标关闭时,它会消失,如何让它在鼠标悬停在下拉菜单上时保持可见?

<template>
    <nav class="navbar">
        <div class="navigation flex justify-between">
            <ul class="flex gap-2.5">
                <li v-for="item in navLinks" :key="item.name">
                    <NuxtLink :to="item.link" class="hover:text-blue-500">{{ item.name }}</NuxtLink>
                    <div v-if="item.name === 'Genres'" class="dropdown absolute w-48 bg-white shadow-lg rounded-lg py-2">
                        <ul>
                            <li v-for="genre in genres" :key="genre._id">
                                <NuxtLink :to="genre.name" class="block px-4 py-2 text-gray-800 hover:bg-blue-500 hover:text-white">{{ genre.name }}</NuxtLink>
                            </li>
                        </ul>
                    </div>
                </li>
            </ul>
            <div class="auth flex gap-2">
                <NuxtLink to="/auth/register">Register</NuxtLink>
                <NuxtLink to="/auth/login">Login</NuxtLink>
            </div>
        </div>
    </nav>
</template>

<script setup>
const { genres } = defineProps(['genres'])

</script>


<style scoped>
.dropdown {
    display: none;
    top: 2.5rem;
    left: 0;
    position: absolute;
}

li:hover > .dropdown, .dropdown:hover {
    display: block;
}

@media (max-width: 768px) {
    .navigation {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }
    .auth {
        margin-top: 1rem;
    }
}
</style>

已尝试鼠标事件,但未解决问题

zpgglvta

zpgglvta1#

通过在父li元素上使用:hover伪类而不是下拉元素。

.dropdown {
      display: none;
      top: 2.5rem;
      left: 0;
      position: absolute;
    }
    
    li:hover .dropdown {
      display: block;
    }
    
    li:hover > a {
      background-color: #f3f4f6;
    }
    
    @media (max-width: 768px) {
      .navigation {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
      }
      .auth {
        margin-top: 1rem;
      }
    }

只要鼠标在父li或下拉列表本身上,下拉列表将保持可见。

相关问题