次のように、ボディのさまざまなクラスでテーマを選択します。
body.smb2{
background-image:url('smb3.jpg');
background-repeat:repeat-x;
background-position:left bottom;
background-attachment: fixed;
background-color: #6899f8;
}
body.zelda{
background-image:url('zeldalttp.jpg');
background-repeat:no-repeat;
background-position:left bottom;
background-attachment: fixed;
background-color: Black;
}
次に、JavaScript(またはサーバー側)を使用してbodyクラスを設定し、選択内容をCookieに保存します。
正確には、cssをcssファイルに入れて、次のように変更できます。
HTML:
<select id="select">
<option value=""></option>
<option value="smb2">SMB 2</option>
<option value="zelda">Zelda</option>
</select>
純粋なJS:
var sel = document.getElementById('select');
sel.onchange = function(){
document.body.className = sel.value;
};
または必要に応じてjQuery:
$('select').change(function(){
$('body').prop('class',$(this).val());
});
あなたのサイトの問題は、ボディにすでに他のクラスがたくさんあるということです。そして、classNameはそれらすべてを上書きします。1つの解決策は、古いクラスを保存してから、次のように新しいクラスを追加することです。
var saveclass = null;
var sel = document.getElementById('select');
sel.onchange = function(){
saveclass = saveclass ? saveclass : document.body.className;
document.body.className = saveclass + ' ' + sel.value;
};
またはjQuery:
var currentclass = null;
$('select').change(function(){
$('body').removeClass(currentclass).addClass($(this).val());
currentclass = $(this).val();
});