原生js實現tab選項卡切換

怎麼說呢,最近在寫一個後臺管理模板,發現以前寫的tab切換現在有點達不到自己心裏的標準,所以就重新寫了一個,本着擁抱原生js的原則,就放棄了jQuery。下面廢話不多說,先看一下效果圖吧:
原生js實現tab選項卡切換-七墨先生
看一下效果圖,如果是您想要的話,那麼您再繼續往下面看,算了,還是直接一點直接上代碼吧,下面代碼不依賴任何插件,也就是說,您直接複製一下打開就能看效果啦。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>js實現tab切換</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			ul {
				list-style: none;
			}
			.container {
				margin: 100px;
			}
			.tab_ul {
				background-color: #5edbbe;
				overflow: hidden;
			}
			.tab_ul li {
				float: left;
				padding: 15px;
				cursor: pointer;
			}
			.tab_ul .active {
				color: #ec1818;
			}
			.tab_content {
				background-color: #F6F6F6;
				min-height: 250px;
				padding: 15px;
				overflow: hidden;
			}
			.tab_child {
				display: none;
				animation: hideTab 0.5s;
				-moz-animation: hideTab 0.6s;/* Firefox */
				-webkit-animation: hideTab 0.6s;/* Safari and Chrome */
			}
			@keyframes hideTab {
				0% {
					opacity: 0;
					transform: translate(200px, 0)
				}
				100% {
					opacity: 1;
					transform: translate(0, 0)
				}
			}
		</style>
	</head>
	<body>
		<div class="container">
			<ul class="tab_ul">
				<li class="active">選項一</li>
				<li>選項二</li>
				<li>選項三</li>
			</ul>
			<div class="tab_content">
				<div class="tab_child" style="display: block;">
					<p>“你羨慕我 一身瀟灑 無牽無掛,我卻羨慕你,有家、有她、有人等你回家”</p>
				</div>
				<div class="tab_child">
					<p>我上了那麼多年學,熬了那麼多夜,做那麼多習題,頂着各種各樣的壓力,參加各種殘酷的考試,談戀愛,分手,工作,加班。我這麼辛苦,竟然是爲了成爲一個普通人......——《生而爲人》</p>
				</div>
				<div class="tab_child">
					<p>“有人問我暗戀是什麼感覺,我下意識的回答:好像是在商店看到喜歡的玩具,想買,錢不夠,努力存錢,回頭去看的時候發現漲價了,更加拼命的存錢,等我錢攢夠的時候,再回去發現已經被買走了。希望不會在垃圾堆看到這玩具,不然我依然會把它撿起來。”</p>
				</div>
			</div>
		</div>
		<script type="text/javascript">
			var tab = document.getElementsByClassName('tab_ul')[0];
			var tabList = tab.getElementsByTagName('li');
			var tabChild = document.getElementsByClassName('tab_child');
			for (let i = 0; i < tabList.length; i++) {
				tabList[i].onclick = function() {
					tabInit()
					this.classList.add('active');
					tabChild[i].setAttribute('style', 'display:block');
				}
			}
			//初始化tab
			function tabInit() {
				for (let i = 0; i < tabList.length; i++) {
					tabList[i].classList.remove('active')
					tabChild[i].setAttribute('style', 'display:none')
				}
			}
		</script>
	</body>
</html>

另外需要多說一點的是,這個tab選項卡實現的動態效果是靠css3的animationkeyframes完成的,上面有代碼體現,代碼很簡短,自己研究一下吧。

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