今回はOnsen UIのCSSを動的に切り替える方法を紹介する。
まず、LINKタグにIDを設定する。
有効にするCSSファイルのIDを指定し、disabledプロパティをfalseに設定する。
ほかは無効にするため、trueを設定する。
※Onsen UIで複雑な処理を実装すると、ちらつく場合があるので要注意。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <script src="components/loader.js"></script> <script src="lib/onsenui/js/onsenui.min.js"></script> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="lib/onsenui/css/onsenui.css"> <link id="css-dark" rel="stylesheet" href="lib/onsenui/css/dark-onsen-css-components.css"> <link id="css-old" rel="stylesheet" href="lib/onsenui/css/old-onsen-css-components.css"> <link id="css-default" rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css"> <link rel="stylesheet" href="css/style.css"> <script> // Page init event document.addEventListener('init', function(event) { var page = event.target; if (page.matches('#first-page')) { page.querySelector('#push-button').onclick = function() { document.querySelector('#navigator').pushPage('page2.html'); }; page.querySelector("#default-button").onclick = function () { document.querySelector("#css-default").disabled = false; document.querySelector("#css-dark").disabled = true; document.querySelector("#css-old").disabled = true; } page.querySelector("#dark-button").onclick = function () { document.querySelector("#css-dark").disabled = false; document.querySelector("#css-default").disabled = true; document.querySelector("#css-old").disabled = true; } page.querySelector("#old-button").onclick = function () { document.querySelector("#css-old").disabled = false; document.querySelector("#css-default").disabled = true; document.querySelector("#css-dark").disabled = true; } } else if (page.matches('#second-page')) { page.querySelector('#pop-button').onclick = function() { document.querySelector('#navigator').popPage(); }; } }); </script> </head> <body> <ons-navigator id="navigator" page="page1.html"></ons-navigator> <ons-template id="page1.html"> <ons-page id="first-page"> <ons-toolbar> <div class="center">Page 1</div> </ons-toolbar> <div class="content" style="text-align: center"> <p>This is the first page.</p> <ons-button id="push-button">Push page</ons-button> <br /> <br /> <ons-button id="default-button">default</ons-button> <ons-button id="dark-button">dark</ons-button> <ons-button id="old-button">old</ons-button> </div> </ons-page> </ons-template> <ons-template id="page2.html"> <ons-page id="second-page"> <ons-toolbar> <div class="left"><ons-back-button>Page 1</ons-back-button></div> <div class="center">Page 2</div> </ons-toolbar> <div class="content" style="text-align: center"> <p>This is the second page.</p> <ons-button id="pop-button">Pop page</ons-button> </div> </ons-page> </ons-template> </body> </html> |