如何用js写一个简易选项卡

前面的html代码部分就不贴出来了,重点在js部分;

1.首先获取到需要的DOM元素

var oLi = document.getElementById('section').getElementsByTagName('li');
var oUL=document.getElementById('detail').getElementsByTagName('ul');
2.对获取到的oLI循环遍历,添加onmouseenter事件
for(var i = 0;i<oLi.length;i++){
    oLi[i].index=i;
    oLi[i].οnmοuseenter=function(){
                   }
 }
这里为什么要写oLi[i].index=i呢??后面会用到的;

3.在遍历了oLI添加事件后我们要对当前的li和对应的ul操作

<pre name="code" class="javascript">for(var i = 0;i<oLi.length;i++){
    oLi[i].index=i;
    oLi[i].οnmοuseenter=function(){
            this.className='current';  //为当前的li添加样式                  
            oUl[this.index].display='block';   //获取当前的li对应的index,将对应的Ul显示出来
 }
 }

 4.为需要的li和ul添加操作了,不需要的呢?我们做相反的操作 
for(var i=0;i<oLi.length;i++){
	       	   	  oLi[i].index=i;
	       	   	  oLi[i].οnmοuseenter=function(){
	       	   	  for(var n=0;n<oLi.length;n++){oLi[n].className='';}  //循环遍历li,置空所有li的class,写在<span style="font-family: Arial, Helvetica, sans-serif;">this.className='current'的前面否则会覆盖,下面同理;</span>
                          this.className='current';
	       	   	  
	       	   	  for(var m=0;m<oUl.length;m++){oUl[n].style.display='none';}   //循环遍历ul,隐藏所有ul
	       	   	  	oUl[this.index].style.display='block';                  <span style="font-family: Arial, Helvetica, sans-serif;"> //获取当前的li对应的index,将对应的Ul显示出来</span>
 
	       	   	  
	       	   }
	 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基本的选项卡切换的实现: HTML代码: ```html <div class="tab"> <button class="tablinks" onclick="openTab(event, 'tab1')">选项卡1</button> <button class="tablinks" onclick="openTab(event, 'tab2')">选项卡2</button> <button class="tablinks" onclick="openTab(event, 'tab3')">选项卡3</button> </div> <div id="tab1" class="tabcontent"> <h3>选项卡1</h3> <p>这是选项卡1的内容。</p> </div> <div id="tab2" class="tabcontent"> <h3>选项卡2</h3> <p>这是选项卡2的内容。</p> </div> <div id="tab3" class="tabcontent"> <h3>选项卡3</h3> <p>这是选项卡3的内容。</p> </div> ``` CSS代码: ```css .tab { overflow: hidden; border: 1px solid #ccc; background-color: #f1f1f1; } .tab button { background-color: inherit; float: left; border: none; outline: none; cursor: pointer; padding: 14px 16px; transition: 0.3s; } .tab button:hover { background-color: #ddd; } .tab button.active { background-color: #ccc; } .tabcontent { display: none; padding: 6px 12px; border: 1px solid #ccc; border-top: none; } ``` JavaScript代码: ```javascript function openTab(evt, tabName) { var i, tabcontent, tablinks; tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].style.display = "none"; } tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } document.getElementById(tabName).style.display = "block"; evt.currentTarget.className += " active"; } ``` 在这个示例中,我们首先定义了一个包含选项卡按钮和内容的HTML结构。然后,我们使用CSS样式来设置选项卡的外观。最后,我们使用JavaScript来实现选项卡切换的逻辑。具体来说,当用户点击选项卡按钮时,我们会隐藏所有选项卡内容,并将所有选项卡按钮的类名设置为非活动状态。然后,我们显示当前选项卡的内容,并将其对应的按钮类名设置为活动状态。这样,用户就可以通过点击不同的选项卡按钮来切换选项卡内容了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值