Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена стилей (https://javascript.ru/forum/dom-window/83998-zamena-stilejj.html)

рони 11.05.2022 13:20

vitalso78,
и такой вариант
строка 8 href оставить пустым
строка 9 ставить сразу после link

строка 16 в любое место.

строка 39 убрать class switch-on

<!DOCTYPE html>
<html>

<head>
    <title>css localStorage</title>
    <meta charset="UTF-8" />
    <base href="https://delivery.foodsonic.ru/" />
    <link rel="stylesheet" href="" id="theme-css-file" />
    <script>
    let CssFilePath = localStorage.getItem("CssFilePath")||"https://delivery.foodsonic.ru/light.css";
    const styleElement = document.querySelector("#theme-css-file");
    styleElement.href = CssFilePath;
    </script>


    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const styleElement = document.querySelector("#theme-css-file");
            const button = document.querySelector("#SuperButton");
            let CssFilePath = localStorage.getItem("CssFilePath");
            if (CssFilePath) {
                if (CssFilePath.indexOf("dark.css") !== -1) button.classList.add("switch-on");
                else button.classList.remove("switch-on");
             
            }
            button.addEventListener("click", function() {
                let href = "https://delivery.foodsonic.ru/light.css";
                button.classList.toggle("switch-on");
                if (button.classList.contains("switch-on")) href = "https://delivery.foodsonic.ru/dark.css";
                styleElement.href = href;
                localStorage.setItem("CssFilePath", href);
            })
        });
    </script>
</head>

<body>
    <div>Switch theme:</div>
    <div class="switch-btn" id="SuperButton" name="SuperButton">SuperButton</div>
</body>

</html>

рони 11.05.2022 13:24

обновить и скопировать )))

Nexus 11.05.2022 13:25

рони, а зачем div'у в 39-й строке атрибут name?

рони 11.05.2022 13:37

Цитата:

Сообщение от Nexus
зачем div'у в 39-й строке атрибут name?

))) видимо при рождении div был input-ом, можно убрать, если нет подвязок css на этот селектор.

vitalso78 11.05.2022 16:44

Вообщем вот что у меня получилось https://delivery.foodsonic.ru/, благодаря вам конечно

рони 11.05.2022 17:24

vitalso78,
смотрите #31, "лишняя" подгрузка стилей в начале, должна исчезнуть.

vitalso78 11.05.2022 17:38

Цитата:

Сообщение от рони (Сообщение 545309)
vitalso78,
смотрите #31, "лишняя" подгрузка стилей в начале, должна исчезнуть.

Чот я не найду. что именно удалить ?

рони 11.05.2022 17:44

vitalso78,
строка 43
<link rel="stylesheet" href="/light.css" id="theme-css-file" /> выделенное удалить
должно стать так
<link rel="stylesheet" href="" id="theme-css-file" />
<script>
    let CssFilePath = localStorage.getItem("CssFilePath")||"/light.css";
    const styleElement = document.querySelector("#theme-css-file");
    styleElement.href = CssFilePath;
    </script>


 </head>

vitalso78 11.05.2022 17:47

Ага, спасибо

vitalso78 12.05.2022 10:32

Забыл вчера рассказать. Так как сайт на Битриксе,- изложил проблему у них на форуме. С начала неделю ждал, тишина, вообще никого. Потом всё таки кто то ответил. Изложил такую инструкцию,- охиреешь. Что бы сделать вот такой переключатель , надо обернуться вокруг себя три раза, свистнуть 28 раз, подпрыгнуть 234 раза, и стучать в бубен пока не заработает код. Даже пример не привели. Геморой страшный. У вас же сделал за 30 минут.


Часовой пояс GMT +3, время: 19:17.