Сегодня мы хотим поделиться скриптами модальных окон с красивыми эффектами. Различных вариаций очень много, так что каждый сможет найти своё.
Идея в том, что модальное окошко нужно показать при клике на кнопку (элемент страницы); далее последует приятная анимация и собственно появляется окно.
На версиях iOS < 6 мобильной версии Safari, могут быть проблемы с отображением.
Структура модального окна делится на контейнер и контент:
| 01 | <divclass="md-modal md-effect-1"id="modal-1"> | 
 
| 02 |     <divclass="md-content"> | 
 
| 05 |             <p>This is a modal window. You can do the following things with it:</p> | 
 
| 07 |                 <li><strong>Read:</strong> Modal windows will probably tell you something important so don't forget to read what it says.</li> | 
 
| 08 |                 <li><strong>Look:</strong> modal windows enjoy a certain kind of attention; just look at it and appreciate its presence.</li> | 
 
| 09 |                 <li><strong>Close:</strong> click on the button below to close the modal.</li> | 
 
| 11 |             <buttonclass="md-close">Close me!</button> | 
 
| 18 | <divclass="md-overlay"></div> | 
 
 
 
 
Основной контейнер будет отображаться или скрываться (используя класс “md-show”), а внутренний контент будет анимироваться. Оформляем окна следующими селекторами:
| 11 |     backface-visibility: hidden; | 
 
| 12 |     transform: translateX(-50%) translateY(-50%); | 
 
| 28 |     background: rgba(143,27,15,0.8); | 
 
| 32 | .md-show~ .md-overlay { | 
 
 
 
 
Для некоторых эффектов добавим класс html элементам. В особенности для применения 3D эффектов. Заметьте это, что мы применяем всё это к всей странице и контенту:
Для контроля различных эффектов, создадим специальные классы, ответственные за специфический эффект и анимацию. Пример индивидуального эффекта:
| 02 | .md-show.md-effect-5~ .md-overlay { | 
 
| 03 |     background: rgba(0,127,108,0.8); | 
 
| 06 | .md-effect-5.md-content { | 
 
| 07 |     transform: scale(0) rotate(720deg); | 
 
| 12 | .md-show.md-effect-5.md-content { | 
 
| 13 |     transform: scale(1) rotate(0deg); | 
 
 
 
 
У кнопок воспользуемся атрибутом data-* для того чтобы задать источник контента модального окна:
| 1 | <buttonclass="md-trigger"data-modal="modal-5">Newspaper</button> | 
 
 
 
 
 
 
Комментариев нет:
Отправить комментарий