js实现动态选项卡的方法有哪些!
导读:关于“js实现动态选项卡的方法有哪些!”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“js实现动态选项卡的方法有哪些...
关于“js实现动态选项卡的方法有哪些!”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“js实现动态选项卡的方法有哪些!”吧。
JS多种方法实现动态选择选项卡
首先贴出HTML 和 CSS 这个不是重点
!DOCTYPE html> html> head> meta charset="UTF-8"> meta name="viewport" content="width=device-width, initial-scale=1.0"> meta http-equiv="X-UA-Compatible" content="ie=edge"> title> Document/title> link rel="stylesheet" href="css/reset.min.css"> style> .tabBox{ margin: 20px auto; width: 500px; } .tabBox ul{ position: relative; top: 1px; } .tabBox ul li{ display: inline-block; padding: 0 5px; margin-right:10px; line-height: 33px; border: 1px solid #aaa; cursor: pointer; } .tabBox ul li.active{ border-bottom-color:#fff; /* 当前LI的边框覆盖着DIV的边框, 我们让LI的下边框是背景颜色白色,这样看上去就像没边框了 */ font-weight: bold; color: lightcoral; } .tabBox div{ display: none; line-height: 148px; text-align: center; border: 1px solid #aaa; } .tabBox div.active{ display: block; } /style> /head> body> div id="tabBox"> ul> li> 新闻/li> li> 电影/li> li> 音乐/li> /ul> div> 嘟嘟/div> div> 滴滴/div> div> 嘟嘟滴滴/div> /div> script src="js/tab_zy.js"> /script> /body> /html>
【实现思路】
给所有的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; ioList.length; i++){ oList[i].CurIndex = i oList[i].onclick = function(){ if(this.CurIndex===LastIndex) return; //=> 如果当前点击的索引和上一次索引相同(点击的就是上一个被选中的),我们不做任何事情 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; ioList.length ; i++){ oList[i].onclick = function(){ ChangeTab(this); } } function ChangeTab(n){ for(var j=0; joList.length; j++){ //=> 如果当前循环的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实现动态选项卡的方法有哪些!的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: js实现动态选项卡的方法有哪些!
本文地址: https://pptw.com/jishu/653438.html