网站建设资讯

NEWS

网站建设资讯

js实现动态选项卡的方法有哪些

这篇“js实现动态选项卡的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js实现动态选项卡的方法有哪些”文章吧。

成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为罗江企业提供专业的成都做网站、成都网站建设、成都外贸网站建设罗江网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

JS多种方法实现动态选择选项卡

首先贴出HTML 和 CSS 这个不是重点




    
    
    
    Document
    
    


    
        
                
  • 新闻
  •             
  • 电影
  •             
  • 音乐
  •         
           
嘟嘟
        
滴滴
        
嘟嘟滴滴
      
                   

【实现思路】

  • 给所有的LI绑定点击事件,当点击任何一个li 的时候,都做第二步操作

  • 可以先让所有的LI && p 的class都为空(xxx.className=’’),在让当前点击 的这个LI和对应的p有 active这个样式类即可

以下是JS获取元素的 公用部分

var oBox = document.getElementById('tabBox'),
    oList = oBox.getElementsByTagName('li'),
    op = oBox.getElementsByTagName('p');

方案一

var LastIndex = 0 //记录上次所选的LI 选中的索引
for(var i=0;i如果当前点击的索引和上一次索引相同(点击的就是上一个被选中的),我们不做任何事情
		oList[LastIndex].className = op[LastIndex].className = ''	//=>清空上一次
		oList[this.CurIndex].className=op[this.CurIndex].className = 'active'
		//=>修改LAST-INDEX值,让当前本选中的索引作为下一次点击要清除的上一次的索引
		LastIndex  = this.CurIndex
	}
}

方案二:

//=>1.传递对象
for(var i = 0; i如果当前循环的LI和传递进来点击的那个元素相同,说明当前循环的这个LI就是被点击的,让其有选中样式
		if(oList[j]===n){
			oList[j].className= op[j].className = 'active'
		}else{
		//=>不相等,则不是被点击的,我们取消选中样式即可
			oList[j].className= op[j].className = ''
		}
	}
}

方案三:

for (let i = 0; i < tabList.length; i++) {
    tabList[i].onclick=function(){
        // 事件绑定:给当前元素的某一个事情绑定一个方法,绑定的时候方法没有执行
        // (属于创建一个方法,当在页面中手动触发点击事件的时候绑定的方法才会执行)
        changeTab(i);
    }
    
}
// 形参变量:当执行这个方法的时候,会把当前点击的这个LI索引传递过来
function changeTab(n) {
    // 1、所有都没有选中样式
    for (let i = 0; i < tabList.length; i++) {
        tabList[i].className='';
        pList[i].className ='';
        
    }
    // 2、当前点击的所有选中样式
    tabList[n].className='active';
    pList[n].className = 'active';
}

方案四:(JQ实现)

//当HTML结构都加载完成执行函数
jQuery(function($){    
    //基于JQ内置EACH机制,给每个LI 都绑定了 点击事件
        $('.tabBox>.header>li').on('click',function(){
            let index = $(this).index();//获取当前点击LI 的索引
            //siblings()  获取兄弟元素
            $(this).addClass('active').siblings().removeClass('active').parent().nextAll('p').eq(index).addClass('active').siblings('p').removeClass('active')
           
        });
});

以上就是关于“js实现动态选项卡的方法有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


当前文章:js实现动态选项卡的方法有哪些
文章起源:http://njwzjz.com/article/ghgoch.html

其他资讯