classListとは
classListはHTML5で追加された比較的新しいプロパティです。リスト化されたことによりclassNameプロパティで直接操作するより簡便にクラスを変更できるようになりました。
JavaScriptでスタイルをアクティブに変更するのに便利です。
classListのメソッド
メソッド名 | 機能 |
---|---|
add(class) | クラスリストへクラスを追加 |
remove(class) | クラスリストからクラスを削除 |
contains(class) | |
toggle(class) | クラスリストにclassが含まれていれば削除、なければ追加 |
item(number) | クラスリストの番号を入れることで名前を取得 |
length | クラスリストの要素数 |
toggleを使った例
- <!--doctype html-->
- <meta charset="UTF-8">
- <link rel="stylesheet" type="text/css" href="../css/html5reset.css">
- <!--[if lt IE 9]>
- <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]-->
- <title>classList</title>
- <script>
- window.onload = function() {
- var home = document.getElementById("home");
- var com = document.getElementById("com");
- var item = document.getElementById("item");
- var info = document.getElementById("info");
- home.onclick = changeStyle;
- com.onclick = changeStyle;
- item.onclick = changeStyle;
- info.onclick = changeStyle;
- }
- function changeStyle() {
- this.classList.toggle('button');
- this.classList.toggle('pushed-button');
- }
- </script>
- <style>
- #menu li {
- width: 120px;
- padding: 6px 10px;
- border-top: 1px solid lightcyan;
- }
- #menu li:last-child {
- border-bottom: 1px solid lightcyan;
- }
- .label {
- font-family: Verdana, "ヒラギノ角ゴ Pro W3","MS Pゴシック",sans-serif;
- font-size: 1.1em;
- }
- .button {
- background-color: dodgerblue;
- color: lightcyan;
- }
- .pushed-button {
- background-color: lightcyan;
- color: dodgerblue;
- }
- </style>
- <div id="container">
- <h1>classList</h1>
- <ul id="menu">
- <li id="home" class="label button">Home</li>
- <li id="com" class="label button">Company</li>
- <li id="item" class="label button">Item</li>
- <li id="info" class="label button">Infomation</li>
- </ul>
- </div>