用多种方法实现tab标签切换
2016-12-08 17:20
537 查看
在开始之前先谈谈局外话,最近正在找工作,发现好多公司都要求在某某上面有文章发表,一次文章都没发过的我顿时感觉好尴尬,忙里偷闲发表点文章,毕竟第一次发,还有很多很多需要学习的地方,技术方面还有欠缺,望前辈们多多指点迷津!
昨天去面试,面试官让我手写一段代码实现tab标签的切换,因为家里有事,辞职了一个月,一个月都没写代码了,手生了不少,我竟然没写出来,今天我研究了一下,用了三种方法实现这种效果,分别是纯CSS,原生JS和JQuery。大家可以参考下,样式写的比较简单,只是实现了想要的效果,有不同想法的欢迎来吐槽
1、纯CSS的写法:
2、原生JS的写法:
3、JQuery的写法:
昨天去面试,面试官让我手写一段代码实现tab标签的切换,因为家里有事,辞职了一个月,一个月都没写代码了,手生了不少,我竟然没写出来,今天我研究了一下,用了三种方法实现这种效果,分别是纯CSS,原生JS和JQuery。大家可以参考下,样式写的比较简单,只是实现了想要的效果,有不同想法的欢迎来吐槽
1、纯CSS的写法:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } a{ text-decoration: none; display: inline-block; width: 100%; } a:hover{ color: #fff; } ul{ width: 100%; border-bottom: 2px solid red; overflow: hidden; } li{ float: left; text-align: center; width: 22%; list-style: none; margin: 0 5px; cursor: pointer; line-height: 30px; } li:hover{ border-top-left-radius: 7px; border-top-right-radius: 7px; background-color: red; color: #fff; } div.box{ margin-top: 10px; width: 100%; height: 200px; border: 1px solid black; cursor: pointer; overflow: hidden; text-align: center; line-height: 200px; } div.box div{ width: 100%; height: 100%; } </style> </head> <body> <ul> <li><a href="#tab1">标签1</a></li> <li><a href="#tab2">标签2</a></li> <li><a href="#tab3">标签3</a></li> <li><a href="#tab4">标签4</a></li> </ul> <div class="box"> <div id="tab1">第1部分</div> <div id="tab2">第2部分</div> <div id="tab3">第3部分</div> <div id="tab4">第4部分</div> </div> </body> </html>
2、原生JS的写法:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin:0; padding: 0; } ul{ list-style: none; float: left; } li{ width: 100px; border: 2px solid #ccc; text-align: center; margin-top: -2px; height: 50px; line-height: 50px; cursor: pointer; } .tab{ width: 300px; height: 204px; border: 2px solid #ececec; display: none; margin-left: 102px; text-align: center; line-height: 200px; } .hover{ background-color: red; color: #fff; } </style> </head> <body> <ul id="ul1"> <li class="hover">标题1</li> <li>标题2</li> <li>标题3</li> <li>标题4</li> </ul> <div class="tab" style="display:block;">第一部分</div> <div class="tab">第二部分</div> <div class="tab">第三部分</div> <div class="tab">第四部分</div> <script type="text/javascript"> var lis = document.getElementsByTagName("li"); var divs = document.getElementsByTagName("div"); for(var i=0; i<lis.length; i++){ //循环把i的值赋值给li的index lis[i].index = i; lis[i].onmouseover = function(){ //移除每个li上存在的类 for(var j=0; j<lis.length; j++){ lis[j].className = ""; } //给当前li添加类 this.className ="hover"; //隐藏每个div for(var i=0; i<divs.length; i++){ divs[i].style.display="none"; } //根据索引显示相应的div divs[this.index].style.display = "block"; } } </script> </body> </html>
3、JQuery的写法:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } div{ display: none; } ul{ width: 100%; border-bottom: 2px solid red; overflow: hidden; } li{ float: left; text-align: center; width: 30%; list-style: none; margin: 0 5px; cursor: pointer; line-height: 30px; } .show{ border-top-left-radius: 7px; border-top-right-radius: 7px; background-color: red; color: #fff; } div.tab{ margin-top: 10px; width: 100%; height: 200px; border: 1px solid black; cursor: pointer; text-align: center; line-height: 200px; } </style> </head> <body> <ul> <li class="show">标题1</li> <li>标题2</li> <li>标题3</li> </ul> <div class="show0 tab" style="display: block;">第一部分</div> <div class="show1 tab">第二部分</div> <div class="show2 tab">第三部分</div> <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $('li').hover(function(){ //获取所有的li标签并移除类 $(this).siblings().removeClass('show'); //给当前的li添加类 $(this).addClass('show'); //隐藏所有的div $('div').hide(); //获取当前li的索引 var index=$('li').index($(this)); //拼凑相应的div的类 var index1='show'+index; //根据相应的类显示相应的div $('div.'+index1).show(); }) </script> </body> </html>
相关文章推荐
- jQuery实现tab标签自动切换的方法
- jQuery实现tab标签自动切换的方法
- Tab标签切换页面的多种实现方式
- CSS滑动门技术实现TAB标签切换效果实例,支持各种浏览器
- VS2008(C#)制作网页Tab标签切换方法(一)
- VS2008(C#)制作网页Tab标签切换方法(二)
- VS2008(C#)制作网页Tab标签切换方法(三)
- Visual C++中Tab View的多种实现方法
- VS2008(C#)制作网页Tab标签切换方法(三)
- VS2008(C#)制作网页Tab标签切换方法(四)
- VS2008(C#)制作网页Tab标签切换方法(四)
- VS2008(C#)制作网页Tab标签切换方法(三)
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(二)
- VS2008(C#)制作网页Tab标签切换方法(一)
- VS2008(C#)制作网页Tab标签切换方法(四)
- JQuery学习笔记 实现图片翻转效果和TAB标签切换效果第1/2页
- VS2008(C#)制作网页Tab标签切换方法(一)
- VS2008(C#)制作网页Tab标签切换方法(一)
- VS2008(C#)制作网页Tab标签切换方法(二)
- VS2008(C#)制作网页Tab标签切换方法(四)