@alex01s

Как сделать многостраничный сайт в одном HTML файле используя Javascript?

Всем привет. Подскажите пожалуйста, как сделать "переход по страницам" сайта на Javascript, но на самом деле весь контент хранится в одном HTML файле. То есть, при использовании ссылок становится видимым тот section, который соответствует текущей странице, а все остальные полностью скрыты. Как на этой странице:

https://john-doe.neocities.org/

Но здесь это реализовано на CSS, и если Home Page длинный, то он не скрывается полностью.
  • Вопрос задан
  • 1625 просмотров
Решения вопроса 1
@goshaLoonny
Это очень просто сделать, но полагаю будут проблемы с SEO
Первый способ:
Обработка :target
Ссылкам в меню присваиваются якоря(#), а странички это по сути блоки с display: none, position: absolute и обязательно с НЕ прозрачным фоном т.к. первый экран не скрывается, а далее обрабатывается :target. Вот пример:


Второй способ:
Добавление скрытых(что бы не портить дизайн) <input type="radio"> и обработку :checked с использованием ~. Вот пример:
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
По факту ты делаешь веб-приложение, одностраничное.

Рекомендую использовать jQuery UI, чтобы не изобретать велосипеды:
https://antonshevchuk.gitbooks.io/jquery-for-begin...
Ответ написан
Комментировать
@rrqqww
Есть вариант реализации с fetch.

В общем, нужно для каждой страницы создать разметку в отдельных html с общим атрибутом. Со стороны js напиши функцию, которая будет принимать url поисковика и общий контейнер, в функцию закинь fetch на url к html элементу, забирай разметку с html файла, и выводи в контейнер, прямо в этой же функции, которую повесь на обработчик клика по навигации, а навигацию сделай ссылкой, такой вариант будет работать в каждой странице.

Не стоит всю разметку пихать в один html, особенно если она объемная
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы