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>

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章