<!DOCTYPE html>
<html>
<head>
	<title>Vue Website</title>
	<link rel='stylesheet' type='text/css' href='style.css'>
	<script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
</head>
<body>
	<div id='app'>
		<header>
			<nav>
				<div class='logo'>
					<img src='logo.png'>
				</div>
				<div class='menu'>
					<ul>
						<li v-for='item in menu' :key='item.id' @mouseover='showBox(item.id)' @mouseleave='hideBox()'>
							<a>{{item.title}}</a>
							<div class='box' v-if='item.show'>
								<a v-for='subItem in item.submenu' :key='subItem.id'>{{subItem.title}}</a>
							</div>
						</li>
					</ul>
				</div>
			</nav>
		</header>
		<main>
			<p>Welcome to our website!</p>
			<p>We provide the latest news and announcements about our company.</p>
			<p>Stay tuned for exciting updates!</p>
		</main>
	</div>
	<script>
		var app = new Vue({
			el: '#app',
			data: {
				menu: [
					{id: 1, title: 'About Us', show: false, submenu: [
						{id: 1, title: 'Mission'},
						{id: 2, title: 'Vision'},
						{id: 3, title: 'Values'},
						{id: 4, title: 'History'}
					]},
					{id: 2, title: 'News Center', show: false, submenu: [
						{id: 1, title: 'Press Releases'},
						{id: 2, title: 'Media Coverage'},
						{id: 3, title: 'Events'}
					]},
					{id: 3, title: 'Policy Notices', show: false, submenu: [
						{id: 1, title: 'Privacy Policy'},
						{id: 2, title: 'Terms and Conditions'},
						{id: 3, title: 'Cookie Policy'},
						{id: 4, title: 'Disclaimer'}
					]}
				]
			},
			methods: {
				showBox: function(id) {
					this.menu.forEach(function(item) {
						if (item.id == id) {
							item.show = true;
						}
					});
				},
				hideBox: function() {
					this.menu.forEach(function(item) {
						item.show = false;
					});
				}
			}
		})
	</script>
</body>
</html>
<p>/* CSS */</p>
<ul>
<li>{
margin: 0;
padding: 0;
box-sizing: border-box;
}</li>
</ul>
<p>body {
font-family: Arial, sans-serif;
font-size: 16px;
}</p>
<p>header {
background-color: #333;
color: #fff;
padding: 10px;
}</p>
<p>nav {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}</p>
<p>.logo {
width: 40%;
}</p>
<p>.logo img {
max-width: 100%;
height: auto;
}</p>
<p>.menu {
width: 60%;
}</p>
<p>ul {
list-style: none;
display: flex;
}</p>
<p>li {
margin-right: 20px;
position: relative;
}</p>
<p>a {
color: #fff;
text-decoration: none;
}</p>
<p>.box {
position: absolute;
top: 100%;
left: 0;
background-color: #fff;
padding: 10px;
display: none;
z-index: 1;
}</p>
<p>.box a {
display: block;
margin-bottom: 5px;
color: #333;
}</p>
<p>li:hover .box {
display: block;
}</p>
Vue.js 网站导航栏设计:悬停显示下拉菜单

原文地址: https://www.cveoy.top/t/topic/lNlr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录