tab选项卡--(面向对象)

<!DOCTYPE html>
<html lang="en">
 <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>面向对象Tab选项卡</title> 
  <style>
     body,html,ul,li{padding:0px;margin: 0px;}
     #tab_header ul{display: flex;width: 100%;}
     #tab_header ul  li{
		 flex: 1;
		 font-style: normal;
		 list-style-type: none;
		 justify-content: center;
		 text-align: center;
		 align-items: center;
	 }
	 ul li.active{color:red}
	 #tab_content{padding:10px;}
    </style> 
 </head> 
 <body> 
  <div id="tab_header"> 
   <ul> 
    <li id="0" class="active">公告</li> 
    <li id="1">新闻</li> 
    <li id="2">论坛</li> 
    <li id="3">公堂</li> 
   </ul> 
  </div> 
  <div id="tab_content"> 
   <div class="dom" style="display: block;">
    这是公告
   </div> 
   <div class="dom" style="display: none;">
    这是新闻
   </div> 
   <div class="dom" style="display: none;">
    这是论坛
   </div> 
   <div class="dom" style="display: none;">
    这是公堂
   </div> 
  </div>  
  <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> 
  <script type="text/javascript">
		window.onload = function() {
			var tab = new TabsFn(); //页面加载完成后执行构造函数
			tab._inint(); //调用方法
		}

		function TabsFn() {
			this.lis = document.getElementsByTagName("li"); //找到页面所有的li
			this.contents = document.getElementsByClassName("dom"); //找到页面所有的dom
		}

		TabsFn.prototype = { //使用prototype原型链向对象添加属性和方法
			_inint: function() {
				this.setId(); //设置索引方法
				this.bindEvent(); //鼠标经过方法
			},
			//设置索引id
			setId: function() {
				for (var i = 0; i < this.lis.length; i++) {
					this.lis[i].id = i;
				}
			},
			//绑定事件
			bindEvent: function() {
				var self = this; //备份this
				for (var i = 0; i < this.lis.length; i++) { //遍历li中的个数
					this.lis[i].onmouseover = function(e) { //事件
						for (var j = 0; j < self.lis.length; j++) { //重置所有的li的active为空和隐藏所有的要显示的文本
							self.lis[j].className = '';
							self.contents[j].style.display = 'none';
						}
						this.className = 'active'; //启用当前的active
						self.contents[this.id].style.display = 'block' //启用当前的文本内容显示
					}
				}
			}
		}
	</script>  
 </body>
</html>

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色咖啡 Ken

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值