JS+CSS实现滑动切换tab菜单效果的攻略:
JS+CSS实现滑动切换tab菜单效果的攻略:
- 前端HTML结构设计:
首先在HTML页面中,需要定义一个具有一定宽度的容器,用于承载tab菜单和对应的内容项。在该容器中,使用无序列表添加tab菜单项,并在li内添加标签页的名称等内容。同时,在该容器中添加对应的内容项,使用具有相同class的div元素作为内容项的容器,并在其内添加对应的标签页内容。具体的HTML结构示例如下所示:
<div class="tabs-container">
<ul class="tabs-menu">
<li class="active"><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Tab 2</a></li>
<li><a href="#tabs-3">Tab 3</a></li>
</ul>
<div id="tabs-1" class="tab-content active">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus auctor justo vel metus commodo, ac pretium massa placerat. Morbi sapien mauris, condimentum nec orci vel, feugiat laoreet elit. In in tempor enim.</p>
</div>
<div id="tabs-2" class="tab-content">
<p>Ut fringilla in ex nec iaculis. Pellentesque ut lectus vel eros iaculis porttitor. Donec nulla urna, efficitur sit amet volutpat sit amet, pretium eu ante. Aliquam consequat leo vel lacinia iaculis.</p>
</div>
<div id="tabs-3" class="tab-content">
<p>Sed porttitor molestie enim a facilisis. Integer ac rutrum quam, non bibendum lacus. Sed malesuada magna auctor, blandit metus vel, bibendum leo. Nulla a sapien malesuada, consequat tellus eget, egestas lacus.</p>
</div>
</div>
在这里,.tabs-container
作为容器的class值,.tabs-menu
和.tab-content
作为菜单列表和内容项的class值。
- CSS样式设置
在HTML页面中创建好菜单项和内容项容器后,需要将样式设置好。主要用到flex布局和定位属性,具体CSS代码如下:
.tabs-container{
width: 100%;
display: flex;
flex-direction: column;
}
.tabs-menu{
list-style: none;
padding: 0;
margin: 0;
display: flex;
justify-content: space-evenly;
}
.tabs-menu li{
padding: 10px 15px;
cursor: pointer;
border-radius: 0 0 5px 5px;
}
.tabs-menu li.active{
background-color: #007bc7 !important;
color: #FFFFFF;
position: relative;
}
.tab-content{
display: none;
}
.tab-content.active{
display: block;
}
在这里,我们为.tabs-container采用flex布局,设为纵向排列。接着对.tabs-menu设置了样式:设定更加美观的对齐方式、去除原来的圆点效果并去掉父元素左边距。同时,对于每一个li元素,设置了点击鼠标指针的手势和一定的圆角,以增加美感。对于选定的菜单项,我们使用了背景色和文字颜色的变化,并设置其active状态,以此区别出选定和未选定的标签页。在样式的最后,我们对.tab-content设置了display为none,隐藏内容项。而对于选定的.tab-content元素,使用了.active状态,将其display设为block,这样就可以实现对应标签页内容的显示。
- JS实现效果
在HTML和CSS的基础上,使用JS实现切换标签页的效果。我们需要响应鼠标的点击动作,并根据点击的事件实现内容项的滑动切换效果。实现代码如下:
const tabLinks = document.querySelectorAll(".tabs-menu a");
const tabContent = document.querySelectorAll(".tab-content");
const firstContent = document.querySelector(".tab-content:first-child");
firstContent.classList.add("active");
tabLinks.forEach((eachLink) => {
eachLink.addEventListener("click", (e) => {
e.preventDefault();
const currentLink = e.target.getAttribute("href");
const currentTab = document.querySelector(currentLink);
tabContent.forEach((eachTab) => {
eachTab.classList.remove("active");
});
tabLinks.forEach((eachLink) => {
eachLink.classList.remove("active");
});
currentTab.classList.add("active");
eachLink.classList.add("active");
});
});
这个代码块完成了以下三个步骤:
+ 首先,选择所有的菜单项和内容项,并将第一个内容项设置为“active”状态。
+ 然后,为tabLinks中的每个链接元素添加click事件,并在点击时进行操作,包括删除所有的.tab-content.active类和.tabs-menu li.active类,以确保没有其他标签被选中。
+ 最后,将当前标签页与对应的菜单项添加.active类,使其突出显示。
- 示例说明:
下面给出两个JS+CSS实现滑动切换tab菜单效果的示例: -
- 源码地址
-
- 源码地址
这两个示例都采用了相同的HTML结构和CSS样式,但第一个示例在JS中使用了遍历数组进行操作,而第二个示例中直接对对应的标签页进行操作。无论是哪一种方式,都可以实现完美的切换tab菜单的效果。
本文标题为:JS+CSS实现滑动切换tab菜单效果
基础教程推荐
- 在模板页面的js使用办法 2023-12-01
- 深入浅析Nginx实现AJAX跨域请求问题 2023-01-20
- vue DatePicker日期选择器时差8小时问题 2023-07-09
- Ajax技术组成与核心原理分析 2023-01-21
- Ajax实现跨域访问最新解决方案 2023-02-15
- CSS实现子元素div水平垂直居中的示例 2023-12-21
- 20行JS代码实现网页刮刮乐效果 2023-12-21
- css写菜单:简洁注释版 2022-11-04
- js使用swiper实现层叠轮播效果实例代码 2023-12-02
- 第6天:XHTML代码规范 2022-11-04