重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇“js实现动态选项卡的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js实现动态选项卡的方法有哪些”文章吧。
成都创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为罗江企业提供专业的成都做网站、成都网站建设、成都外贸网站建设,罗江网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
首先贴出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实现动态选项卡的方法有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。