@kiberlain

Как вы реализуете смену цветовых схем на сайтах?

Меняете класс у body? Подключаете css-ку с цветами кнопок и прочих блоков?
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
@kiberlain Автор вопроса
нашёл решение

// globals

if (typeof bbs == 'undefined') {
	bbs = {};
}


// for switching color themes
bbs.theme = localStorage.getItem('rmz_bbs-auto-theme') || 'default';
bbs.themeLink = $('#theme-css-link');
if (bbs.themeLink.data('theme') !== bbs.theme){
	bbs.themeLink.attr({
		'href': 'static/css/theme_' + bbs.theme + '.css',
		'data-theme': bbs.theme
	});
	$('body').attr('data-theme', bbs.theme);
}

$(document).ready(function(){
	var themeInputs = $('.theme-input');
	themeInputs.prop('checked', false);
	themeInputs.filter('[value='+bbs.theme+']').prop('checked', true);
	$('body').attr('data-theme', bbs.theme);

	// color-theme switch
	themeInputs.on('change', function(){
		console.log('111');
		var newTheme = $(this).val();
		if (bbs.theme !== newTheme){
			bbs.theme = newTheme;
			bbs.themeLink.attr({
				'href': 'static/css/theme_' + bbs.theme + '.css',
				'data-theme': bbs.theme
			});
			$('body').attr('data-theme', bbs.theme);
			localStorage.setItem('rmz_bbs-auto-theme', bbs.theme);
		} else return;
	});
})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
В зависимости от обстоятельств.
По хорошему - использовать Sass, после чего сгенерировать несколько цветовых решений, переключая стиль.
Но в некоторых случаях, когда расширяемость не особо нужна, и в будущем не планируется - можно менять класс у body, и прописывать все ручками в одном файле.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Проще всего: разные шаблоны и переключатель шаблонов выносим на front-end.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы