aタグボタン押下をトリガーとして、読み込まれるスタイルシート(<link>タグ)を追加したいと思っています。
また、その状態をLocalStrageに保存し、次回再訪時、または再読み込み時でもそのスタイルシートが読み込まれた状態にしたいと思っています。
再度、同じボタンを押せば、上の適用されたスタイルシートは適用から外され、状態をLocalStrageに入れ、次回再訪時、または再読み込み時でもその状態が適用された状態にしたいと思っています。
ボタン押下後、そのボタンのラベルも変更したいと思っています。
現状、ボタン押下後、スタイルシートの読み込みまでは完成していて、その状態から戻す処理(?)がよく分かりません。
色々試しすぎてよくわからなくなってきました。
ご教授下さい!
html
1<a href="#" id="styleSwitch"> 2<span class="icon text">夜間モードに切り替える</span> 3</a>
Javascript
1$(function() { 2var styleSwitch = $('#styleSwitch'); 3var styleSwitchBtn = styleSwitch.find('.text'); 4 5// ユーザーの状態を定義 6var userState = false; 7 8// ローカルストレージから読み込み 9loadToLS(); 10 11function saveToLS() { 12 localStorage.setItem('userStateLS', userState); 13} 14function loadToLS() { 15 var userState = localStorage.getItem('userStateLS'); 16} 17 18if(userState === false) { 19 //夜間モードではない時 20 styleSwitchBtn.text("夜間モードに切り替える"); 21 22 $('#styleSwitch').on('click', function() { 23 styleSwitchBtn.text("昼間モードに切り替える"); 24 userState = true; 25 saveToLS(); 26 console.log(userState); 27 $('<link rel="stylesheet" href="/example/resources/css/night.css">').appendTo('head'); 28 }); 29 30} else if(userState === true) { 31 //夜間モードの時 32 styleSwitchBtn.text("昼間モードに切り替える"); 33 34 $('#styleSwitch').on('click', function() { 35 styleSwitchBtn.text("夜間モードに切り替える"); 36 userState = false; 37 saveToLS(); 38 loadToLS(); 39 console.log(userState); 40 $('<link rel="stylesheet" href="/example/resources/css/night.css">').remove(); 41 }); 42} 43 44});
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。