2017-04-01 36 views
-1

所以我需要能夠檢查一個指定的id是否有特定的類,但我不完全確定如何做到這一點。如何使用javascript檢查特定的類?

這是我的代碼。你可以看到我在homeTransition函數中檢查某個特定類的id的嘗試。

function homeTransition() 
 
    { 
 
     if(document.getElementById("aboutContent").hasClass("animated fadeInUp")){ 
 
      document.getElementById("aboutContent").className = " animated slideOutDown"; 
 
     } else if(document.getElementById("projectsContent").hasClass("animated fadeInUp")){ 
 
      document.getElementById("projectsContent").className = " animated slideOutDown"; 
 
      } else if(document.getElementById("contactContent").hasClass("animated fadeInUp")){ 
 
       document.getElementById("contactContent").className = " animated slideOutDown"; 
 
      } 
 
        document.getElementById("astronaut").className = " animated fadeIn"; 
 
    } 
 

 
function aboutTransition() 
 
    { 
 
     document.getElementById("astronaut").className = " animated fadeOut"; 
 
     document.getElementById("aboutContent").className = " animated fadeInUp"; 
 
     
 
     document.getElementById("projectsContent").className = " animated fadeOutLeft"; 
 
     document.getElementById("contactContent").className = " animated fadeOutLeft"; 
 
    } 
 

 
function projectsTransition() 
 
    { 
 
     document.getElementById("astronaut").className = " animated fadeOut"; 
 
     document.getElementById("projectsContent").className = " animated fadeInUp"; 
 
     
 
     document.getElementById("aboutContent").className = " animated fadeOutLeft"; 
 
     document.getElementById("contactContent").className = " animated fadeOutLeft"; 
 
    } 
 

 
function contactTransition() 
 
    { 
 
     document.getElementById("astronaut").className = " animated fadeOut"; 
 
     document.getElementById("contactContent").className = " animated fadeInUp"; 
 
     
 
     document.getElementById("aboutContent").className = " animated fadeOutLeft"; 
 
     document.getElementById("projectsContent").className = " animated fadeOutLeft"; 
 
    } 
 

 
//Menu 
 
function expand(){ 
 
    $(this).toggleClass("on"); 
 
    $(".menu").toggleClass("active"); 
 
}; 
 
$(".button").on('click', expand);
body { 
 
    font-family: "Source Sans Pro", sans-serif; 
 
    color: #ccc; 
 
    z-index: -100; 
 
    background-color: black; 
 
    overflow: hidden; 
 
} 
 

 
#aboutContent { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    bottom: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height: 100%; 
 
    transition: all 250ms; 
 
    -webkit-transform: translateZ(0) translateX(-100%); 
 
    transform: translateZ(0) translateX(-100%); 
 
    background-color: #2b2b41; 
 
    z-index: -1; 
 
} 
 

 
#projectsContent { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    bottom: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height: 100%; 
 
    transition: all 250ms; 
 
    -webkit-transform: translateZ(0) translateX(-100%); 
 
    transform: translateZ(0) translateX(-100%); 
 
    background-color: #42424b; 
 
    z-index: -1; 
 
} 
 

 
#contactContent { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    bottom: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height: 100%; 
 
    transition: all 250ms; 
 
    -webkit-transform: translateZ(0) translateX(-100%); 
 
    transform: translateZ(0) translateX(-100%); 
 
    background-color: #353440; 
 
    z-index: -1; 
 
} 
 

 
.menu { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    bottom: 0; 
 
    padding: 0; 
 
    overflow: hidden; 
 
    background: rgba(45, 51, 54, 0.9); 
 
    width: 18%; 
 
    box-sizing: border-box; 
 
    transition: all 250ms; 
 
    -webkit-transform: translateZ(0) translateX(-100%); 
 
    transform: translateZ(0) translateX(-100%); 
 
    text-align:center; 
 
    box-shadow: 0 0 20px #000000; 
 
} 
 

 
.active { 
 
    transform: translateZ(0) translateX(0); 
 
    transform: translateZ(0) translateX(0); 
 
    -webkit-transition: 0.4s; 
 
    transition: 0.4s; 
 
    color: #e5e5e5; 
 
} 
 

 
h1 { 
 
    margin-top:60%; 
 
    font-size: 2.5em; 
 
    cursor: default; 
 
} 
 

 
ul { 
 
    padding:0; 
 
    list-style:none; 
 
    font-size:14px; 
 
} 
 

 
li { 
 
    padding:10px 10px; 
 
} 
 

 
a { 
 
    text-decoration:none; 
 
    padding:10px 15px; 
 
    color:#fff; 
 
    font-family:"Roboto"; 
 
    font-size: 1.5em; 
 
    font-weight: 300; 
 
} 
 

 
a:hover { 
 
    text-decoration: line-through; 
 
    color: #0dffec; 
 
} 
 

 
.content { 
 
    position:relative; 
 
    width:300px; 
 
} 
 

 
.button { 
 
    width:20px; 
 
    height:40px; 
 
    margin:24% 36%; 
 
    padding: 14px; 
 
    cursor:pointer; 
 
} 
 

 
.line { 
 
\t width: 40px; 
 
\t height: 2px; 
 
    background-color: #fff; 
 
\t transition: transform 0.3s ease, background 0.3s ease, opacity 0.3s ease, top 0.3s ease; 
 
} 
 

 
.line.first { 
 
    transform: translateX(-10px) translateY(22px) rotate(-90deg); 
 
} 
 

 
.line.second { 
 
    transform: translateX(-10px) translateY(19px) rotate(0deg); 
 
} 
 

 
.button.on .line.top { 
 
\t transform: translateX(-10px) translateY(20px) rotate(45deg); 
 
} 
 

 
.button.on .line.bottom { 
 
\t transform: translateX(-10px) translateY(17px)rotate(-45deg); 
 
} 
 

 
@keyframes fadein { 
 
    from { 
 
     opacity:0; 
 
    } 
 
    to { 
 
     opacity:1; 
 
    } 
 
} 
 
@-webkit-keyframes fadein { /* Safari and Chrome */ 
 
    from { 
 
     opacity:0; 
 
    } 
 
    to { 
 
     opacity:1; 
 
    } 
 
}
<!DOCTYPE html> 
 

 
<html> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    
 
    <title>Home</title> 
 
    
 
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro|Play|Raleway" rel="stylesheet"> 
 
    
 
    <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css'> 
 
    
 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
 
    <link rel="stylesheet" type="text/css" href="css/animate.css"> 
 
</head> 
 
<body> 
 
    
 
<div id="wrapper"> 
 
    <div class="menu"> 
 
     
 
    <h1>Title</h1> 
 
     
 
    <ul> 
 
     <div id="home" onclick="homeTransition()"><li><a href="#home"><i class="fa fa-home"></i> home</a></li></div> 
 
     <div id="about" onclick="aboutTransition()"><li><a href="#about"><i class="fa fa-user"></i> about</a></li></div> 
 
     <div id="projects" onclick="projectsTransition()"><li><a href="#projects"><i class="fa fa-code"></i> projects</a></li></div> 
 
     <div id="contact" onclick="contactTransition()"><li><a href="#contact"><i class="fa fa-paper-plane"></i> contact</a></li></div> 
 
    </ul> 
 
    </div> 
 
    
 
    <div class="content"> 
 
    <div class="button"> 
 
     <div class="line first top"></div> 
 
     <div class="line second bottom"></div> 
 
    </div> 
 
    </div> 
 
    
 
    
 
    
 
    <div id="aboutContent"> 
 
    
 
    </div> 
 
    
 
    <div id="projectsContent"> 
 
    
 
    </div> 
 
    
 
    <div id="contactContent"> 
 
    
 
    </div> 
 
    
 
</div> 
 
    
 
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 
 
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js'></script> 
 
    
 
    <script type="text/javascript" src="js/transition.js"></script> 
 
    <script type="text/javascript" src="js/background.js"></script> 
 
</body> 
 
</html>

回答

1

您可以檢查這樣

document.getElementById("projectsContent").className.indexOf("animated") !== -1 // class exists on element 

但對於這一點,你可以在一個變量檢查​​只有一個類,如果你要檢查多個類存儲類名,並檢查所有的人或寫實用功能。

編輯:

正如在評論中提及的@Jerinaw你也可以使用下面的代碼,這是比上面,如果你不需要爲< IE10

document.getElementById("projectsContent").classList.contains("animated") // class exists on element 
+0

請參閱https://developer.mozilla.org/en-US/docs/Web/API/Element/classList classList有一個方法'包含' – Jerinaw

+0

@Jerinaw對不起,我不明白,你能否詳細說明。 – mfahadi

+0

可以說你有一個元素。 'element.classList.contains( '動畫')'。這將返回true或false。 'classList'是元素上所有類的列表。 'contains'是一種檢查classList是否有你正在尋找的類的方法。 – Jerinaw

0

使用香草的Javascript

document.querySelector('#aboutContent.myclass'); 

本上寫着:(類選擇器)選擇與ID(id選擇#)aboutContent元素,並具有一流的myClass

閱讀上
CSS selectors
querySelector

我也想指出,你似乎是混合香草的JavaScript和jQuery。也許你應該閱讀與jQuery選擇元素。

+0

支持更短的有沒有如何選擇課程?因爲我有3個ID需要檢查。 –

+0

選擇所有具有類「myclass」的元素document.querySelectorAll('。myclass');' – Jerinaw

相關問題