Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2011, 16:33
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

модальные окна на сайте.
они есть везде : на фейсбуке, на почти каждой домашнеё странице, на юкозе.

и у меня они есть, несомненно

встал вопрос - а как лучше реализовать модальные окна на сайте?

исследовав этот вопрос, я изрёк такую мысль :
Цитата:
Пользователю никогда не показывается более одного модального окна. Модальные окна похожи между собой по строкутуре HTML, различия только в заголовках, контентах, кнопках и доп. атрибутах (цвет,размер).

Так зачем каждый раз создавать новое модальное окно, прописывать ему стили и дочерние элементы плюс дополнительные атрибуты ?
Я пришёл к выводу, что :
  • Модальное окно не удаляется со страницы и не создаётся заново
  • Оно всегда присутствует на странице
  • При показе модального окна будут изменяться его атрибуты (заголовок и т.д), а потом оно будет показываться.
  • При скрытии модального окна ничего не происходит, кроме скрытия самого окна.

Модальное окно по-умолчанию скрыто, это - обычный элемент на странице с динамическим содержимым.

Я попытался использовать MVC : ведь если окно всегда на странице, то его внешний вид может изменить верстальщик, сразу на странице, вместо того, чтобы лезть в код.

Скрипту соотв. передаются элементы оверлея, модального окра, его заголовка и т.д.

Я хотел бы услышать от вас, чем эта модель плоха, или как ещё можно реализовать модальные окна на сайте.


PS. показать модальное окно, если оно уже показано, нельзя. это уже интерфейс.
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2011, 18:36
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Надо смотреть по ситуации: модальное окно уничтожается и создается снова. Ведь не факт, что пользователь вообще им воспользуется, а по Вашей схеме код придется таскать. Опять же оверлей - а если аккордион на странице? Тогда каждый раз пересчитывать размер оверлея при показе окна?
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2011, 19:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Serg_pnz Посмотреть сообщение
Ведь не факт, что пользователь вообще им воспользуется, а по Вашей схеме код придется таскать.
50\50. но он встроен в страницу, и этого не избежать.

если вы говорите про загружаемый объём, то создание такого модального окна через js будет тяжелее весить, чем это окно через html.

Сообщение от Serg_pnz Посмотреть сообщение
Опять же оверлей - а если аккордион на странице? Тогда каждый раз пересчитывать размер оверлея при показе окна?
нет. размеры оверлея определяются через css.
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2011, 20:33
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Хотя да. Саму конструкцию таскаем, а инфу обновляем по открытии.
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2011, 23:18
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Приведите ситуацию, когда без модального окна не обойтись.

З.Ы. Модальные окна -- зло.
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2011, 13:12
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Галерея, "алерт", опросник, регистрация - бывает и не обойтись.
Ответить с цитированием
  #7 (permalink)  
Старый 25.09.2011, 13:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Serg_pnz
Галерея
Почему нельзя показать галерею, не блокируя остальную страницу?

Сообщение от Serg_pnz
алерт
Почему нельзя показать сообщение, не блокируя остальную страницу?

Сообщение от Serg_pnz
опросник
Почему нельзя показать опросник, не блокируя остальную страницу?

Сообщение от Serg_pnz
регистрация
Почему нельзя показать форму регистрации, не блокируя остальную страницу?
Ответить с цитированием
  #8 (permalink)  
Старый 25.09.2011, 14:28
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Если мне понадобитсмя сделать акцент - я буду блокировать страницу!
Ибо «бывает и не обойтись»
Ответить с цитированием
  #9 (permalink)  
Старый 25.09.2011, 19:54
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

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

Сообщение от melky
Я попытался использовать MVC : ведь если окно всегда на странице, то его внешний вид может изменить верстальщик, сразу на странице, вместо того, чтобы лезть в код.
если для тебя это важно, тогда да. Для меня важнее, чтобы компонент был минимально размазан по коду.

Сообщение от melky
нет. размеры оверлея определяются через css.
задаются через css? Не уверен, что это возможно.

Сообщение от Kolyaj
Почему нельзя показать галерею, не блокируя остальную страницу?
Yo dawg! I heard that you like modal windows, so we put some modal windows in your modal windows so you can facepalm while you facepalm. Но лучше не блокировать без необходимости, конечно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервисы для реализации оплаты кредитками на сайте. nyols Серверные языки и технологии 1 29.05.2011 13:44
Плавное открытие окна. Flashton Элементы интерфейса 3 20.10.2010 16:00
Модальные окна и $().html(); maxsoftware jQuery 2 12.04.2010 10:01
Подмена размеров окна браузера Александр Иванов Events/DOM/Window 5 09.02.2010 11:27
Исчезновение окна как на сайте vkontakte vladex jQuery 2 19.08.2009 03:56