以下是一个示例解决方案,使用HTML、CSS和JavaScript实现了按标签过滤显示所有页面而不是标记页面的功能。
HTML代码:
按标签过滤显示页面
按标签过滤显示页面
页面1(标签1)
页面2(标签2)
页面3(标签3)
页面4(标签1)
页面5(标签2)
CSS代码(styles.css):
.page {
display: none;
padding: 10px;
margin-bottom: 10px;
border: 1px solid #ccc;
}
.tag {
padding: 5px 10px;
margin-right: 10px;
}
.tag.active {
background-color: #ccc;
}
JavaScript代码(script.js):
function filterPages(tag) {
var pages = document.getElementsByClassName('page');
var tags = document.getElementsByClassName('tag');
// 隐藏所有页面
for (var i = 0; i < pages.length; i++) {
pages[i].style.display = 'none';
}
// 移除所有标签的活动类
for (var i = 0; i < tags.length; i++) {
tags[i].classList.remove('active');
}
// 显示具有所选标签的页面
if (tag === 'all') {
for (var i = 0; i < pages.length; i++) {
pages[i].style.display = 'block';
}
} else {
var filteredPages = document.getElementsByClassName(tag);
for (var i = 0; i < filteredPages.length; i++) {
filteredPages[i].style.display = 'block';
}
}
// 添加活动类到所选标签
event.target.classList.add('active');
}
上述代码中,我们首先定义了一组标签按钮,每个按钮都与特定的标签关联。然后,在点击标签按钮时,调用filterPages()函数来根据选择的标签过滤并显示相应的页面。
filterPages()函数首先隐藏所有页面,并移除所有标签的活动类。然后,根据选择的标签,显示具有该标签的页面,并添加活动类到所选标签按钮上。
通过这种方式,我们可以根据不同的标签过滤显示所有页面,而不是标记页面。