JavaScript tab页

  1 <!DOCTYPE html>
  2 <html>
  3 <head lang="en">
  4 <meta charset="UTF-8">
  5 <title>实践题 - 选项卡</title>
  6 <style type="text/css">
  7 /* CSS样式制作 */
  8 .tab-div {
  9 width: 400px;
 10 position: relative; /*作为选项卡内容的定位*/
 11 }
 12 ul {
 13 list-style: none;
 14 }
 15 .tab {
 16 width: 400px;
 17 overflow: hidden;
 18 margin: 0;
 19 padding: 0;
 20 
 21 position: relative;
 22 z-index: 2;
 23 }
 24 .tab li{
 25 float: left;
 26 width: 80px;
 27 height: 30px;
 28 line-height: 30px;
 29 text-align: center;
 30 border: 1px solid #DDD;
 31 border-bottom: 0;
 32 margin-left: 10px;
 33 background: #fff;
 34 cursor: pointer;
 35 }
 36 .tab-content {
 37 width: 350px;
 38 /*position: absolute;*/
 39 border: 1px solid #DDD;
 40 border-top: 3px solid #e4393c;
 41 
 42 text-align: center;
 43 
 44 position: absolute;
 45 top: 31px;
 46 left: 0;
 47 }
 48 .tab-content ul {
 49 margin: 0;
 50 padding: 10px;
 51 }
 52 .tab-content li {
 53 padding: 10px;
 54 }
 55 .tab-content li a {
 56 color: #000;
 57 text-decoration: none;
 58 }
 59 .tab-content li a:hover {
 60 color: #e4393c;
 61 text-decoration: underline;
 62 }
 63 .tab .tab-active {
 64 border-top: 3px solid #e4393c;
 65 border-bottom: 3px solid #fff;
 66 }
 67 .tab-content-show {
 68 display: block;
 69 }
 70 .tab-content-hide {
 71 display: none;
 72 }
 73 </style>
 74 <script type="text/javascript">
 75 // JS实现选项卡切换
 76 window.onload = function() {
 77 var tabList = document.getElementById("tab-list");
 78 var aLis = tabList.getElementsByTagName("li");
 79 var tDiv = document.getElementById("tDiv");
 80 var contents = tDiv.getElementsByTagName("div");
 81 
 82 for(var i = 0; i < aLis.length; i++) {
 83 aLis[i].index = i;
 84 aLis[i].onclick = function() {
 85 for(var j = 0; j < aLis.length; j++) {
 86 aLis[j].className = '';
 87 }
 88 this.className = "tab-active";
 89 
 90 for(var j = 0; j < contents.length; j++) {
 91 contents[j].className = "tab-content tab-content-hide";
 92 }
 93 contents[this.index].className = "tab-content tab-content-show";
 94 };
 95 }
 96 };
 97 
 98 </script>
 99 
100 </head>
101 <body>
102 <!-- HTML页面布局 -->
103 <div id="tDiv" class="tab-div">
104 <ul id="tab-list" class="tab">
105 <li class="tab-active">房产</li>
106 <li>家居</li>
107 <li>二手房</li>
108 </ul>
109 <div class="tab-content tab-content-show">
110 <ul>
111 <li><a href="#">275万购昌平邻铁三居 总价20万买一居</a></li>
112 <li><a href="#">200万内购五环三居 140万安家东三环</a></li>
113 <li><a href="#">北京首现零首付楼盘 53万购东5环50平</a></li>
114 <li><a href="#">京楼盘直降5000 中信府 公园楼王现房</a></li>
115 </ul>
116 </div>
117 <div class="tab-content tab-content-hide">
118 <ul>
119 <li><a href="#">40平出租屋大改造 美少女的混搭小窝</a></li>
120 <li><a href="#">经典清新简欧爱家 90平老房焕发新生</a></li>
121 <li><a href="#">新中式的酷色温情 66平撞色活泼家居</a></li>
122 <li><a href="#">瓷砖就像选好老婆 卫生间烟道的设计</a></li>
123 </ul>
124 </div>
125 <div class="tab-content tab-content-hide">
126 <ul>
127 <li><a href="#">通州豪华3居260万 二环稀缺2居250w甩</a></li>
128 <li><a href="#">西3环通透2居290万 130万2居限量抢购</a></li>
129 <li><a href="#">黄城根小学学区仅260万 121平70万抛!</a></li>
130 <li><a href="#">独家别墅280万 苏州桥2居优惠价248万</a></li>
131 </ul>
132 </div>
133 </div>
134 </body>
135 </html>
View Code

 

转载于:https://www.cnblogs.com/xuwei123/p/10183984.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript实现tab栏自动切换的方法: 1.使用setInterval()函数,设置定时器,定时执行tab栏切换的代码。 2.在tab栏切换的代码中,使用DOM操作获取tab栏的当前选中项,然后判断是否为最后一项,如果是,则将选中项设置为第一项,否则将选中项设置为下一项。 3.在tab栏切换的代码中,使用DOM操作获取tab栏的选项卡内容,然后根据选中项的索引值,将对应的内容显示出来,将其他内容隐藏起来。 4.在页面加载完成后,调用tab栏切换的代码,开始自动切换。 示例代码: HTML部分: <div class="tab"> <ul class="tab-nav"> <li class="active">选项卡1</li> <li>选项卡2</li> <li>选项卡3</li> </ul> <div class="tab-content"> <div class="tab-pane active">选项卡1的内容</div> <div class="tab-pane">选项卡2的内容</div> <div class="tab-pane">选项卡3的内容</div> </div> </div> JavaScript部分: var tabNav = document.querySelector('.tab-nav'); var tabContent = document.querySelector('.tab-content'); var tabs = tabNav.querySelectorAll('li'); var panes = tabContent.querySelectorAll('.tab-pane'); var intervalId; function switchTab() { var activeTab = tabNav.querySelector('.active'); var activePane = tabContent.querySelector('.active'); var nextTab = activeTab.nextElementSibling || tabs[0]; var nextPane = panes[nextTab.dataset.index]; activeTab.classList.remove('active'); activePane.classList.remove('active'); nextTab.classList.add('active'); nextPane.classList.add('active'); } intervalId = setInterval(switchTab, 3000); // 停止自动切换 // clearInterval(intervalId); ### 回答2: JavaScript通过操作DOM元素和计时器函数可以实现tab栏的自动切换效果。一般来说,tab栏的自动切换是通过定时器函数setInterval来实现的。 首先,我们需要获取tab栏的所有选项卡和对应的内容区域。然后,使用一个变量来记录当前选中的选项卡的索引(即默认显示的选项卡的索引)。 接下来,我们可以设置一个定时器函数,每隔一定的时间(比如3秒)就切换到下一个选项卡,并将记录当前选中选项卡的索引变量加1。当索引等于选项卡总数时,将索引变量重置为0,即回到第一个选项卡。 同时,需要将选项卡内容的display属性设置为“none”,并将当前选项卡的内容的display属性设置为“block”,来实现选项卡切换的效果。 最后,我们需要为选项卡添加鼠标悬停事件和点击事件,用于停止自动切换和手动切换选项卡。 总的来说,tab栏自动切换的实现思路需要结合DOM操作、定时器函数以及事件处理等知识。对于涉及到的具体实现细节,可以具体根据项目需求来进行调整和优化。 ### 回答3: JavaScripttab栏自动切换,通常应用于网站中类似于文章内容、产品展示等需要分栏展示的页面,以便更好地呈现页面的内容。 实现该功能的方法有很多种,本文将介绍其中的一种实现方式。 1. HTML结构 首先,我们需要在HTML中定义一个tab栏的结构,主要包括一个ul(无序列表)和一组li(每个选项卡)。 例如: ``` <ul class="tab"> <li class="active">选项卡1</li> <li>选项卡2</li> <li>选项卡3</li> </ul> ``` 其中,active表示当前活跃的选项卡的样式,在CSS中可以定义对应的样式。 2. CSS样式 接下来,我们需要定义我们的选项卡样式。一般情况下,选项卡应该呈现为一排并且光标在选项卡的上方时要有醒目的反馈效果,为了实现该效果,我们可以添加如下的CSS样式: ``` ul.tab { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #f1f1f1; } ul.tab li { float: left; cursor: pointer; padding: 14px 16px; border-top: 2px solid #ffffff; } ul.tab li.active { background-color: #ccc; border: none; } ``` 在这里,我们定义了选项卡和选项卡列表的样式和选项卡被选中时的样式。 3. JavaScript实现 现在我们已经完成了HTML结构和CSS样式,接下来我们需要使用JavaScript来自动切换选项卡。 首先,我们需要定义一个switchTab函数,在该函数中我们需要隐藏所有的tab内容,并显示当前选中的tab相应的内容。例如: ``` function switchTab(event, tabName) { // 清除现有样式 const tabs = document.getElementsByClassName("tabcontent"); for (let i = 0; i < tabs.length; i++) { tabs[i].style.display = "none"; } // 添加活动类别 const tabLinks = document.getElementsByClassName("tablink"); for (let i = 0; i < tabLinks.length; i++) { tabLinks[i].className = tabLinks[i].className.replace(" active", ""); } // 显示当前内容和样式 document.getElementById(tabName).style.display = "block"; event.currentTarget.className += " active"; } ``` 这个函数包括三个主要的步骤: 1. 清除现有样式:我们首先从DOM中获取所有的tab内容,并将它们全部隐藏。 2. 添加活动类别:我们接下来需要获取所有的选项卡链接,并将它们的className中的“active”样式都清理掉。 3. 显示当前内容和样式:最后,我们要获取到当前选中的选项卡的内容,并将它显示出来,同时将选项卡链接的className属性添加“active”样式,以此来高亮选中的选项卡。 接下来,我们需要使用window.setTimeout()函数来实现tab栏的自动切换。例如: ``` let index = 0; automaticSwitch(); function automaticSwitch() { const tabs = document.getElementsByClassName("tablink"); for (let i = 0; i < tabs.length; i++) { tabs[i].className = tabs[i].className.replace(" active", ""); } index++; if (index > tabs.length) { index = 1; } tabs[index - 1].className += " active"; setTimeout(automaticSwitch, 3000); } ``` 在这里,我们定义了index变量,并递增,从而实现选项卡的循环切换。同时,我们使用setTimeout()函数来延时切换。 结论: 通过以上步骤,我们就可以实现JavaScript自动切换tab栏的功能了。当用户点击选项卡时,JavaScript将会切换选项卡,并显示相应内容。当选项卡自动切换时,JavaScript将会自动切换选项卡,以便更好地展现页面内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值