Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Разное оформление для посетителей с JS и без (https://javascript.ru/forum/events/25378-raznoe-oformlenie-dlya-posetitelejj-s-js-i-bez.html)

fry2 03.02.2012 14:31

Разное оформление для посетителей с JS и без
 
Здравствуйте.
Необходимо, чтобы для посетителей без JS было простое меня в виде длинного списка, а для посетителей с JS было совсем другое меню на JS. В голову приходит только замена простого меню на "навороченное" по средствам JS и DOM. Но если простое меню поместить в div, и его содержимое переписывать после полной загрузки этого div-а, тогда простое меню успеет отрисоваться на экране, что нехорошо (можно конечно попользоваться свойством visibility). Ещё один минус - это загрузка кода простого меню, даже если он тут же будет удален. Посоветуйте, как лучше это реализовать, и может есть способ, при котором если есть JS, сразу будет загружаться код с "навороченным" меню.

Skipp 03.02.2012 14:51

Интересно, что подразумевается под меню на JS, это как?

fry2 03.02.2012 14:54

Это меню для работы которого будет использоваться JavaScript :)

dmitriymar 03.02.2012 15:09

при загрузке сразу проверять включён ли скрипт и как вариант делать редирект на страницу для пользователей с включённым скриптом(плохой вариант с точки зрения поисковиков)
хороший ставить куку/сессию и при переходе выдавать уже страницу в необходимом виде-не есть хорошо со стороны юзебилити.

fry2 03.02.2012 15:16

Спасибо dmitriymar, но это ещё хуже чем мой вариант с DOM :)

Skipp 03.02.2012 15:32

fry2,
Обычно делают просто меню которое и без js работает, а с его помощью просто добавляют какие-то эффекты, не мешающие нормальной работе. Или же вы хотите как-то кардинально изменить вид?

fry2 03.02.2012 15:44

Цитата:

Сообщение от Skipp (Сообщение 155102)
fry2,
Обычно делают просто меню которое и без js работает, а с его помощью просто добавляют какие-то эффекты, не мешающие нормальной работе.

Возможно придется поступить именно так, раз нет простого решения :(

Цитата:

Сообщение от Skipp (Сообщение 155102)
Или же вы хотите как-то кардинально изменить вид?

Хочется чтобы было как можно меньше ограничений моей фантазии :)

dmitriymar 03.02.2012 15:46

Цитата:

Сообщение от fry2
Спасибо dmitriymar, но это ещё хуже чем мой вариант с DOM

а кто говорил что это хорошие варианты?
хороший вариант -сайт в независимости от того есть скрип,нет должен выглядеть одинаково и функционировать одинаково.Скриптом можно сделать альтернативную работу меню(эффекты,доступ в меньшее колво кликов...),дополнительное альтернативное меню ,но не координальную замену существующему

poorking 03.02.2012 15:46

Цитата:

Сообщение от poorking
Хочется чтобы было как можно меньше ограничений моей фантазии

fry2,
Ну так верстайте простое меню, а если включен JS, удаляйте его из DOM и новое создавайте, совсем другое, со всеми свистелками

dmitriymar 03.02.2012 15:47

Цитата:

Сообщение от fry2
Хочется чтобы было как можно меньше ограничений моей фантазии

ограничение для фантазии -юзебилити:D
Цитата:

Сообщение от fry2
простое меня в виде длинного списка

и кто его будет читать?
Вам стоит почитать книги по построению интерфейсов
например эту http://tav.su/143155-proektirovanie-...yustraciy.html

fry2 03.02.2012 16:18

Цитата:

Сообщение от poorking (Сообщение 155110)
fry2,
Ну так верстайте простое меню, а если включен JS, удаляйте его из DOM и новое создавайте, совсем другое, со всеми свистелками

Сейчас подумал, если JS есть, можно делать div с меню невидимым свойством visibility, а "навороченное" меню догружать после загрузки всего кода страницы, переписывать div с меню и делать его видим. Тогда и простое меню не будет успевать отрисовываться на экране и загрузка дополнительного кода будет происходить когда уже большая часть страницы загрузилась.

Только как сделать свойство visibility:hidden у элемента который ещё не загузился?

Цитата:

Сообщение от dmitriymar (Сообщение 155111)
ограничение для фантазии -юзебилити:D

Юзебилити у меня на первом месте!

Цитата:

Сообщение от dmitriymar (Сообщение 155111)
и кто его будет читать?

Оно не такое уж большое, порядка 100 пунктов :) разбитых на группы с заголовками.

Цитата:

Сообщение от dmitriymar (Сообщение 155111)
Вам стоит почитать книги по построению интерфейсов
например эту http://tav.su/143155-proektirovanie-...yustraciy.html

Спасибо, обязательно почитаю, но думаю что там все безнадежно устарело :)

dmitriymar 03.02.2012 17:00

Цитата:

Сообщение от fry2
Оно не такое уж большое, порядка 100 пунктов разбитых на группы с заголовками.

та да,это не большое-это огромное. раз так в 15 больше чем рекомендуют макс пунктов.:blink:
Цитата:

Сообщение от fry2
Спасибо, обязательно почитаю, но думаю что там все безнадежно устарело

ошибочно думаете.
также никогда не устаревают поведенческие реакции человека

Раед 03.02.2012 17:08

Цитата:

Сообщение от fry2
Только как сделать свойство visibility:hidden у элемента который ещё не загузился?

fry2,
смело ставьте скрипт сразу после элемента. Он успеет исчезнуть гораздо раньше, чем пользователь его заметит

Aetae 03.02.2012 17:45

Если уж хочется прям точно так, то делается это следующим образом:
<script>
  document.write('<style>.simpe_menu {display:none}</style>')
  //код вашего суперменю
</script>
<div class="simpe_menu">
  //код вашего простого меню
</div>


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