Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.05.2018, 16:11
Интересующийся
Отправить личное сообщение для Seran4ek Посмотреть профиль Найти все сообщения от Seran4ek
 
Регистрация: 04.06.2010
Сообщений: 18

переключение между 2 режимами отображения
Всем привет, имеется страничка, на которой контент может отображаться в 2 вида - по центру( с max-width) и по всей ширине, выполнено это сейчас довольно топорно - имеется функция setStyle, меняет стиль по клику на кнопочку:
var setStyle = function(style) {
		    	if(style == 'default') {
		    		storage.style.сохранить('default')
		    	    обертка_контента.classList.remove('centered');
		    	} else {
		    		storage.style.сохранить('centered');
		    		обертка_контента.classList.add('centered');
		    	}
		    }

она упрощена, но суть понятна. Далее при загрузке страницы сразу после html кода обертки добавляется <script> </script> с содержимым вроде
if(storage.read('style') == 'centered') {
	обертка_контента.classList.add('centered');
}


Работает это как ожидается, хорошо и быстро, но вопрос в том, что у меня подозрительное ощущение, что это все можно сделать "красивее", но я толком даже не могу придумать что именно мне надо искать в гугле, какой паттерн рассматривать.

Соответственно жду, что форумчане натолкнут меня на какую-то мысль по этому поводу, чтобы реализовать красивее, может есть какие-то известные сайты с похожим поведением, где я смогу поискать реализацию

Последний раз редактировалось Seran4ek, 25.05.2018 в 16:32.
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2018, 01:46
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

window.addEventListener("DOMContentLoaded", function() {
обертка_контента.classList.add(storage.read('style'));

function setStyle() {
  обертка_контента.classList.toggle('centered');
  storage.style.сохранить(обертка_контента.classList);
}
});

Последний раз редактировалось void(), 26.05.2018 в 02:14.
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2018, 13:48
Интересующийся
Отправить личное сообщение для Seran4ek Посмотреть профиль Найти все сообщения от Seran4ek
 
Регистрация: 04.06.2010
Сообщений: 18

DOMContentLoaded не подходит, так как при добавлении класса на этом этапе наблюдается "мигание" при переключении стилей, класс нужно добавить как можно раньше, потому это и делается сразу после html кода обертки инлайн скриптом, а вот насчет toggle открыли мне глаза, спасибо, забыл совсем про этот чудный метод
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переключение между "li" AnDit (X)HTML/CSS 8 04.12.2017 17:35
Пошаговое введение данных и переключение между формами sergykor Элементы интерфейса 2 07.09.2015 13:53
Переключение между divами MCB Элементы интерфейса 4 30.10.2011 13:03
Переключение между блоками uncle_fedor Элементы интерфейса 1 10.01.2010 19:01
Отследить переключение между вкладками mrpoma Events/DOM/Window 9 02.02.2009 11:47