Заметки кодера сайтов

Появление модального окна не сразу, а через какое-то время весьма полезная штука. И поисковики благосклонны и пользователи довольны.

Обычно формы в Pop Up окнах делать не сложно, а вот чтобы была задержка хотя бы секунд в 10, уже проблематично. Я находил такие только за $.

Пришлось соорудить собственный метод. За основу взят компонент RsForm. Используется CMS Joomla.

С помощью дополнительного плагина Content - RSForm! Pro помещаем нашу форму в материал. Но предварительно нужно разместить скрипт в пределах тега <head>. Итак, по-порядку:

  1. <script type="text/javascript">
    var delay_popup = 10000;
    setTimeout("document.getElementById('modal_popup').style.display='block'", delay_popup);
    </script>


    var delay_popup = 10000 - это задержка в миллисекундах, сейчас находится в 10 сек.
    Размещаем ближе к началу страницы, перед HTML кодом самой формы.

  2. HTML код формы, в приницпе здесь может быть любой текст, формы. Что сами придумаете
    <div id="modal_popup">
        <div id="modal">
            <p>{*rsform 7}</p><a href="#" class="close" title="Закрыть" onclick="document.getElementById('modal_popup').style.display='none'; return false;">X</a>
        </div>
    </div>
    {*rsform 7} - добавляем форму в материал.
    Добавлять этот код в модули не пробовал. Это может быть полезно для размещения модального окна на нескольких страницах. * убирайте, просто на моем сайте тоже используется этот плагин и вместо кода появляется форма :)
  3. И красиво оформляем всплывающее модальное окно
    #modal_popup{
    background-color: rgba(0, 0, 0, 0.8);
    display: none;
    position: fixed;
    z-index: 99999;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    }
     
    #modal {
    background: #fff;
    width: 520px;
    margin: 15% auto;
    padding: 5px 20px 13px 20px;
    border: 2px solid #E51A4B;
    position: relative;
    -webkit-box-shadow: 0px 0px 20px #000;
    -moz-box-shadow: 0px 0px 20px #000;
    box-shadow: 0px 0px 20px #000;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
    }
    .close{
    display:block;
    position:absolute;
    top:-12px;
    right:5px;
    width:25px;
    height:25px;
    line-height:25px;
    font-size: 12px;
    color:white;
    background:red;
    cursor:pointer;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -ms-border-radius: 15px;
    -o-border-radius: 15px;
    border-radius: 15px;
    -moz-box-shadow: 1px 1px 3px #000;
    -webkit-box-shadow: 1px 1px 3px #000;
    box-shadow: 1px 1px 3px #000;
    text-align: center;
    }