Личный блог фронтендера, делюсь мыслями, фишками, материалами для обучения
localStorage.setItem("theme”, ”light”), если ещё не был создан
2) Затем при клике на кнопку будем получать текущее значение localStorage.getItem(“theme”) и если оно равно строке “light”, то обращаемся к localStorage.theme = “dark”, если нет, то наоборот ставим значение light
Хотя localStorage хранит только строки, мы всегда можем передать туда json, только не забывайте при получение объекта из localStorage делать JSON.parse. Также советую по посмотреть видео на эту тему:template, он не рендерится в DOM дереве и служит для взаимодействия с js, это нужно было для того, чтобы для разных языков были разные попапы. Я, конечно, мог поместить верстку попапа в js, но тогда менять текст кнопок для каждого языка было бы затруднительно, а подключать react по мелочи тоже не хотелось. Поэтому решил для более удобного взаимодействия с template использовать библиотеку Mustache.js, она позволяет легко вставлять данные в свой шаблон и удобно работать с объектами. Эта библиотека отлично подходит для того, чтобы быстро получить готовый html, основанный на каких либо данных, тоже самое можно было бы сделать и через нативный js, через тот же insertAdjacentHTML, но мне было быстрее и удобнее использовать мustache, кому интересно почитать про библиотеку, оставлю статью ниже#, что привело к неисправной работе webpack
В общем, если у вас появиться проблема, которую вы не можете решить, попробуйте посмотреть на неё с другой стороны, возможно, проблема кроется совсем в другом. Иногда пути решения могут показаться неочевидными, но не стоит сразу бежать и решать в лоб, стоит остановиться и взглянуть на задачу по-другомуnew SmoothScroll туда передаете нужный вам селектор, например все ссылки a[href*="#"] и объект со всеми настойками, по-умолчанию speed, это количество миллисекунд, необходимое для прокрутки на 1000 пикселей, но если вам надо, чтобы прокрутка занимала одинаковое количество времени, то установите speedAsDuration как true, еще есть большое количество типов анимации и событий, подробнее: