这个问题的原因是子级导航在鼠标移出父级tabs时消失,导致用户无法操作子级导航。你可以通过在CSS和JavaScript中做一些调整来解决这个问题。
HTML结构:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tab Hover Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="tabs">
<div class="tab-item">Tab 1</div>
<div class="tab-item">Tab 2
<ul class="sub-menu">
<li>Sub-item 1</li>
<li>Sub-item 2</li>
<li>Sub-item 3</li>
</ul>
</div>
<div class="tab-item">Tab 3</div>
</div>
<script src="script.js"></script>
</body>
</html>
CSS样式:
.tabs {
display: flex;
position: relative;
}
.tab-item {
padding: 10px 20px;
background-color: #f1f1f1;
border: 1px solid #ccc;
cursor: pointer;
}
.sub-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
min-width: 200px;
list (style: none;
padding: 0;
margin: 0;
background-color: #fff;
border: 1px solid #ccc;
}
.sub-menu li {
padding: 10px 20px;
cursor: pointer;
}
JavaScript代码:
document.addEventListener('DOMContentLoaded', function () {
const tabItems = document.querySelectorAll('.tab-item');
tabItems.forEach(tabItem => {
tabItem.addEventListener('mouseenter', () => {
const subMenu = tabItem.querySelector('.sub-menu');
if (subMenu) {
subMenu.style.display = 'block';
}
});
tabItem.addEventListener('mouseleave', () => {
const subMenu = tabItem.querySelector('.sub-menu');
if (subMenu) {
subMenu.style.display = 'none';
}
});
});
});
这个实例中,当鼠标移入tab-item时,子级导航(sub-menu)会显示,当鼠标移出tab-item时,子级导航会消失。这样一来,用户就可以正常操作子级导航了。
写了个css的demo,看看能不能解决你的疑问。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul,
li {
list-style: none;
}
.box {
width: 300px;
border: 1px solid red;
margin: 30px auto;
display: flex;
height: 40px;
line-height: 40px;
text-align: center;
}
.box li {
position: relative;
width: 100px;
overflow: hidden;
}
.box li:hover {
overflow: visible;
}
.sub-box {
background-color: pink;
position: absolute;
left: 0;
top: 40px;
width: 100%;
}
.sub-box a {
display: block;
}
.sub-box a:hover {
background-color: red;
}
</style>
</head>
<body>
<ul class="box">
<li>首页</li>
<li>
<p>关于我们</p>
<section class="sub-box">
<a href="#">哈哈哈</a>
<a href="#">嘿嘿嘿</a>
</section>
</li>
<li>业务介绍</li>
</ul>
<section>
手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办手写的tabs,鼠标移入父级tabs,子级导航出现,鼠标移出tabs元素,子级导航就消失了,根本无法操作子级怎么办
</section>
</body>
</html>