Dmitriy_2014

Dmitriy_2014
Рейтинг
370
Регистрация
01.07.2014
Интересы
Веб-технологии
estic #:
Лучше все же добавить href="#" и т.п.
Не href=”#”, оно будет пытаться скролить страницу к верху вроде, а href=”” пустой обновлять, это все ещё хуже. Но есть еще один баг, когда убираешь href, когда подносишь мышку палец нажимания пропадает, хоть это и фиксится курсор поинтером, но странно.
Snake800 #:

По большому счёту да. Есть разница в том, что метод в jQuery ready сработает в любом случае, а DOMContentLoaded может быть не вызван, если событие навешано уже после вызванного браузером события загрузки.

А можно ли сказать что эти методы - document.addEventListener('DOMContentLoaded' и  jQuery(document).ready,

Это тоже самое, если бы я разместил скрипты в footer’е, перед закрывающим тегом body. По сути тоже сначала загрузится страница, а потом скрипты?
Подскажите, это document.addEventListener('DOMContentLoaded', по сути тоже самое что и это jQuery(document).ready? То есть ждет ожидания построения/загрузки DOM и только после него начинает что-то делать?
Snake800 #:

Можно разделить скрипт на 2 части. Вот это -

 оставить в <head>, осталное в подвал вместе с остальными скриптами.

Я вот думаю отдельный js файл сделать, только для переключения темы, или все остальное обернуть в jQuery(document).ready – ну типа чтобы оно потом грузилось.
Snake800 #:

Достаточно в head. Проверено. И да, хорошим тоном является при первом визите устанавливать тему на основе дефолтных настроек юзера.

Да похоже вы правы по поводу head, это вроде работает(даже если скрипт ниже css), я прощелкал 100500 раз, вроде не мелькает вообще. Не, про хороший тон я хочу забыть, т.к. я хочу всего лишь самую простую на белом свете кнопку переключения тем, а она итак превращается в какого-то монстра.

Кстати пару слов о переносе скрипта из футера в хеад, там тоже приколы интересные:

JavaScript говорит мне, что мальчик хочешь на кнопку нажать, а ничего не выйдет, теперь скрипт выше кнопки и поэтому кнопки как бы и нет ХА-ХА – null тебе в ребро :), и в догонку ошибку - Uncaught TypeError: Cannot read properties of null, а ведь до этого все работало когда скрипт был в футере под кнопкой.

Хорошо JavaScript ты не с тем связался, помощь с вестсайдвутангклана подоспела, делаю как этот чувак советует - https://sebhastian.com/javascript-cannot-read-properties-of-null/, ведь мне нужно чтобы теперь кнопка работала со скриптом который в хеад, до кнопки и этот чел советует это:

document.addEventListener('DOMContentLoaded', () => {

  let btnEl = document.getElementById("my-button");

  btnEl?.addEventListener("click", () => alert("You clicked a button!"));

});

И это действительно работает, я не знаю почему и как, но перенос скрипта в хеад и изменение кода как тот чел советовал действительно сработал.

И все вроде бы работает, но все это мне жутко не нравится, ни то что скрипт теперь в хеад, сам скрипт какой-то страшный, плюс 100500 переменных в CSS, лучше бы я ссылку дал на расширение к браузеру Dark Reader, для этих любителей bdsm темных тем, то им в MS-DOS синий экран не нравится, то теперь белый, ну вот они же книги наверное читают, все книги 99% черное на белом, они же не говорят, дайте нам белое на черном, мы же по ночам читаем глазки напрягаем, это же бред какой-то :-), ладно это я шучу :-)
webinfo #:
Ну тоже естественно, потому что исходный CSS  срабатывает  до JS.
Так, а что сделать, перенести JS до CSS?
lutskboy #:
можно добавить  body visibility hidden а при установке темы    visibility visible
Сделать типа как по этому гайду - https://dev.to/whitep4nth3r/the-best-lightdark-mode-theme-toggle-in-javascript-368f, добавив в тег html атрибут data-theme="light"?
divv #:
Если сайт на php, то лучше сразу атрибут добавлять, например в body. Тоесть js использовать для установки и удаления атрибута и запись в куки, а php нужен для установки атрибута сразу при загрузки страницы, чтобы ничего не моргало.
Сайт то на php, но есть нюанс, используется плагин кэширования и страницы отдаются как бы готовыми. Может это как-то влияет?

Посмотрел на pikabu, там эти ошибки и предупреждения генерируются тысячами, даже при прокрутке сайта, ну и при смене темы, походу это стандарт.

Вы правы это нормально, не стоило и переживать…
Антоний Казанский #:

Это вы слишком вольно трактуете её применение.

Пагинация как правило под рабочим перечнем и размещать её куда-то ещё довольно нелепо.

Вот вам классический вид семантической вёрстки,


Соот-но, можно для пагинации придумать и <aside> и логичнее даже <nav>, но как уже сказал, это пустые хлопоты.

Забавно что на этой картинке тоже нет пагинации :), но я где-то когда-то вроде в 98 видел то-ли в галереях то-ли еще где пагинацию сверху над контентом, всякое бывает.
Всего: 1998