Как сделать модальное (всплывающее) окно jQuery

Как сделать модальное (всплывающее) окно jQuery

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

HTML

Данный код необходимо разместить в самом низу страницы:

<div class="popup" data-popup="popup-1">
        <div class="popup-inner">
            <h2>Wow! This is Awesome! (Popup #1)</h2>
            <p>Donec in volutpat nisi. In quam lectus, aliquet rhoncus cursus a, congue et arcu. Vestibulum tincidunt neque id nisi pulvinar aliquam. Nulla luctus luctus ipsum at ultricies. Nullam nec velit dui. Nullam sem eros, pulvinar sed pellentesque ac, feugiat et turpis. Donec gravida ipsum cursus massa malesuada tincidunt. Nullam finibus nunc mauris, quis semper neque ultrices in. Ut ac risus eget eros imperdiet posuere nec eu lectus.</p>
            <p><a data-popup-close="popup-1" href="#">Close</a></p>
            <a class="popup-close" data-popup-close="popup-1" href="#">x</a>
        </div>
    </div>

А этот размещаем там, где будет вызов модального окна:

<a class="btn" data-popup-open="popup-1" href="#">Open Popup #1</a>

CSS

/* Outer */
 
.popup {
    width: 100%;
    height: 100%;
    display: none;
    position: fixed;
    top: 0px;
    left: 0px;
    background: rgba(0, 0, 0, 0.75);
}
 
/* Inner */
 
.popup-inner {
    max-width: 700px;
    width: 90%;
    padding: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    box-shadow: 0px 2px 6px rgba(0, 0, 0, 1);
    border-radius: 3px;
    background: #fff;
}
 
/* Close Button */
 
.popup-close {
    width: 30px;
    height: 30px;
    padding-top: 4px;
    display: inline-block;
    position: absolute;
    top: 0px;
    right: 0px;
    transition: ease 0.25s all;
    -webkit-transform: translate(50%, -50%);
    transform: translate(50%, -50%);
    border-radius: 1000px;
    background: rgba(0, 0, 0, 0.8);
    font-family: Arial, Sans-Serif;
    font-size: 20px;
    text-align: center;
    line-height: 100%;
    color: #fff;
    text-decoration: none;
}
.popup-close:hover {
    -webkit-transform: translate(50%, -50%) rotate(180deg);
    transform: translate(50%, -50%) rotate(180deg);
    background: rgba(0, 0, 0, 1);
    text-decoration: none;
}

JQUERY — JAVASCRIPT

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
   $(function() {
            //----- OPEN
            $('[data-popup-open]').on('click', function(e) {
                var targeted_popup_class = jQuery(this).attr('data-popup-open');
                $('[data-popup="' + targeted_popup_class + '"]').fadeIn(350);
 
                e.preventDefault();
            });
 
            //----- CLOSE
            $('[data-popup-close]').on('click', function(e) {
                var targeted_popup_class = jQuery(this).attr('data-popup-close');
                $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
 
                e.preventDefault();
            });
        });
</script>

Данный код тоже можно модернизировать и сделать отслеживание хеша, по которому при открытии страницы будет открываться модальное окно. Вот собственно и все.

Скачать исходники

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *