左侧栏中是导航链接菜单栏,每个链接都对应一个页面。点击链接时,会在页面上方生成一个标签页,并加载对应页面的内容到标签页中的iframe中。可以通过标签页切换不同的页面,也可以关闭标签页,类似浏览器的标签页。完整html示例,保证可以运行的html代码,给了几个都不能运行
时间: 2023-12-14 16:40:23 浏览: 127
在wordpress导航栏添加页面跳转
下面是一个完整可运行的示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>标签页示例</title>
<style>
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
nav {
background-color: #333;
color: #fff;
display: flex;
justify-content: flex-start;
align-items: center;
height: 50px;
padding: 0 10px;
}
nav a {
color: #fff;
text-decoration: none;
padding: 10px;
border-right: 1px solid #fff;
}
nav a:last-child {
border-right: none;
}
.tabs {
display: flex;
justify-content: flex-start;
align-items: center;
height: 30px;
padding: 5px 10px;
background-color: #eee;
}
.tab {
margin-right: 5px;
padding: 5px;
background-color: #fff;
border: 1px solid #ccc;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
cursor: pointer;
}
.tab.active {
background-color: #333;
color: #fff;
border-color: #333;
}
.tab-content {
padding: 10px;
border: 1px solid #ccc;
border-top: none;
background-color: #fff;
}
iframe {
width: 100%;
height: calc(100vh - 90px);
border: none;
}
</style>
</head>
<body>
<nav>
<a href="#" class="nav-link" data-page="page1.html">页面1</a>
<a href="#" class="nav-link" data-page="page2.html">页面2</a>
<a href="#" class="nav-link" data-page="page3.html">页面3</a>
</nav>
<div class="tabs"></div>
<div class="tab-content">
<iframe id="page-iframe" src=""></iframe>
</div>
<script>
const tabsContainer = document.querySelector('.tabs');
const tabContent = document.querySelector('.tab-content');
const iframe = document.getElementById('page-iframe');
// 初始化标签页
function initTabs() {
// 获取导航链接
const navLinks = document.querySelectorAll('.nav-link');
// 给每个导航链接绑定事件
navLinks.forEach(link => {
link.addEventListener('click', e => {
e.preventDefault();
// 获取页面链接
const pageLink = e.target.dataset.page;
// 创建标签页并激活
createTab(pageLink);
});
});
}
// 创建标签页
function createTab(pageLink) {
// 创建标签元素
const tab = document.createElement('div');
tab.classList.add('tab');
tab.textContent = 'Loading...';
// 给标签绑定事件
tab.addEventListener('click', () => {
activateTab(tab);
});
// 添加标签到标签栏
tabsContainer.appendChild(tab);
// 激活标签
activateTab(tab);
// 加载页面到iframe中
iframe.src = pageLink;
}
// 激活标签页
function activateTab(tab) {
// 取消激活所有标签
const tabs = document.querySelectorAll('.tab');
tabs.forEach(tab => {
tab.classList.remove('active');
});
// 激活当前标签
tab.classList.add('active');
// 显示对应的标签页内容
tabContent.style.display = 'block';
// 更新标签页标题
tab.textContent = iframe.contentDocument.title;
}
// 初始化
initTabs();
</script>
</body>
</html>
```
在同级目录下创建三个HTML文件 `page1.html`、`page2.html` 和 `page3.html`,分别写入不同的内容作为测试。运行代码后,点击导航链接可以在页面上方生成标签页并加载对应的页面内容。可以通过标签页切换不同的页面,也可以关闭标签页。
阅读全文