Как использовать swtich темы extjs?
Я заметил, что extjs поставляется с 3 по 4 темы/скины по умолчанию. Как выбрать или swtich между темами?
Я хочу изменить синий цвет, чтобы выбрать серые темы или что-то еще.
Спасибо
Ответы
Ответ 1
Функция Ext.util.CSS.swapStyleSheet может использоваться для переключения между различными темами, this форумы показывают пример.
Кроме того, я реализовал это сначала в своем приложении некоторое время назад, но в конечном итоге я обнаружил, что принудительное обновление браузера было необходимо вместо динамической замены CSS, так как все еще были бы какие-то странные проблемы с размером и позиционированием. Это было главным образом при переключении между темой доступности.
Ответ 2
Хотя Ext.util.CSS.swapStyleSheet будет работать, он имеет несколько недостатков:
1. Для отображения страницы с новой темой CSS требуется больше времени.
2. При переключении между темами ваша страница будет отсутствовать из какого-либо css. Это сделает страницу плохой (сломанной и простой).
3. Ненужные полосы прокрутки появятся на экране.
Я преодолел их с помощью JavaScript:
Здесь
-
Включите все файлы CSS в ваш HTML файл.
<link rel="stylesheet" id="theme1" type="text/css" href="../Theme1.css" />
<link rel="stylesheet" id="theme2" type="text/css" href="../Theme2.css" />
-
Отключить все темы, кроме тех, которые вы хотите по умолчанию.
document.getElementById('theme1').disabled = true;
document.getElementById('theme2').disabled = false;
Теперь страница будет загружена "theme2".
-
Если вы хотите переключить тему. Сделайте что-то противоположное выше...
document.getElementById('theme1').disabled = false;
document.getElementById('theme2').disabled = true;
Таким образом, переключение будет очень быстрым. Поскольку мы сначала загрузили все файлы css. Он не будет запрашивать сервер для новой темы каждый раз.
Это сработало для меня хорошо.