en.javascript.info/archive/widget-tasks/3-window-manager/task.md
2015-02-21 14:58:02 +03:00

1.7 KiB
Raw Blame History

Менеджер окон

[importance 5]

Эта задача является продолжением задачи .

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

Общее управление окнами должен осуществлять объект WindowManager.

Синтаксис:

WindowManager.setTemplate(html-шаблон для окон);

WindowManager.addWindow({ // создаёт окно по шаблону с заголовком
  title: "Чат с Петей"    // и показывает его
});

WindowManager.addWindow({ // ещё одно окно
  title: "Чат с Машей"
});

Демо в ифрейме: [iframe src="solution" height=300 border=1]

  • Окна перекрывают друг-друга по `z-index`. Максимальный `z-index` должен быть ограничен: от 1 до количества окон.
  • Информация от окна к менеджеру передаётся через события.
  • Инкапсуляция: `WindowManager` использует объект `DraggableWindow`, но не лезет в DOM окна. Обработчики -- только на объект.

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