>  기사  >  웹 프론트엔드  >  Javascript는 탭 전환 효과를 구현합니다.

Javascript는 탭 전환 효과를 구현합니다.

高洛峰
高洛峰원래의
2017-03-24 13:43:071726검색

현재 페이지에는 팝업 레이어 효과, 원활한 스크롤 효과, 탭 전환 효과 등 다양한 페이지 효과가 많이 사용됩니다. 오늘은 네이티브 자바스크립트를 이용해서 직접 작성한 탭전환 효과를 공유해보겠습니다. 제 실력이 부족해서 문제점이 있으면 지적해주세요.
렌더링은 다음과 같습니다.

Javascript는 탭 전환 효과를 구현합니다.

html 코드:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>js-tabs</title> 
<link rel="stylesheet" type="text/css" href="css/base.css" media="all"/> 
<style type="text/css"> 
a{color:#a0b3d6;} 
.tabs{border:1px solid #a0b3d6;margin:100px;width:300px;} 
.tabs-nav a{background:#eaf0fd;line-height:30px;padding:0 20px;display:inline-block;border-right:1px solid #a0b3d6;border-bottom:1px solid #a0b3d6;float:left;} 
.tabs-nav .on{background:white;border-bottom:1px solid white;_position:relative;} 
.tabs-content{padding:20px;border-top:1px solid #a0b3d6;margin-top:-1px;} 
</style> 
</head> 
<body> 
<p id="tabs"> 
<h2 class="tabs-nav clearfix"> 
<a href="javascript:;">首页</a> 
<a href="javascript:;">技术</a> 
<a href="javascript:;">生活</a> 
<a href="javascript:;">作品</a> 
</h2> 
<p>首页首页首页首页首页首页首页首页首页首页</p> 
<p class="tabs-content hide">技术技术技术技术技术技术技术技术技术技术</p> 
<p class="tabs-content hide">生活生活生活生活生活生活生活生活生活生活</p> 
<p class="tabs-content hide">作品作品作品作品作品作品作品作品作品作品</p> 
</p> 
<br/><br/> 
<p id="tabs2"> 
<h2 class="tabs-nav clearfix"> 
<a href="javascript:;">11111</a> 
<a href="javascript:;">22222</a> 
<a href="javascript:;">33333</a> 
</h2> 
<p>11111111111111111111111111111111111</p> 
<p class="tabs-content hide">222222222222222222222222222222222222</p> 
<p class="tabs-content hide">333333333333333333333333333333333333333</p> 
</p> 
</body> 
</html> 
<script type="text/javascript" src="tabs.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
tabs(&#39;tabs&#39;,&#39;click&#39;); 
tabs(&#39;tabs2&#39;,&#39;mouseover&#39;); 
} 
</script>

javascript 코드:

function tabs(id,trigger){ 
var tabsBtn = document.getElementById(id).getElementsByTagName(&#39;h2&#39;)[0].getElementsByTagName(&#39;a&#39;); 
var tabsContent = document.getElementById(id).getElementsByTagName(&#39;p&#39;); 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].index = i; 
if(trigger == &#39;click&#39;){ 
tabsBtn[i].onclick = function(){ 
clearClass(); 
this.className = &#39;on&#39;; 
showContent(this.index); 
} 
}else if(trigger == &#39;mouseover&#39;){ 
tabsBtn[i].onmouseover = function(){ 
clearClass(); 
this.className = &#39;on&#39;; 
showContent(this.index); 
} 
} 
} 
function showContent(n){ 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsContent[i].className = &#39;hide&#39;; 
} 
tabsContent[n].className = &#39;tabs-content&#39;; 
} 
function clearClass(){ 
for(var i = 0,len = tabsBtn.length; i < len; i++){ 
tabsBtn[i].className = &#39;&#39;; 
} 
} 
}

참고:
1 제목 예를 들어 h2 태그에는 홈페이지, 기술, 생활, 작품이 포함됩니다.
2. 현재 제목을 표시하기 위해 이름이 붙은 클래스를 사용합니다. selected 등의 다른 클래스로 변경하는 경우 tabs.js에서 해당 내용을 수정해야 합니다.
3. 제목에 해당하는 내용은 p 태그에 있습니다. p 태그 내에 더 이상 p 태그가 있을 수 없습니다.
PS: 심심할 때 배운 자바스크립트 지식을 바탕으로 임의로 작성한 효과들입니다.

탭 전환 효과를 구현한 자바스크립트 관련 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

관련 기사:

WeChat Mini 프로그램: 탭 효과 구현 예

WeChat Mini 프로그램에서 탭 효과 구현

심플하고 세련된 순수 CSS3 탭 탭 효과

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.