Всплывающий блок на JQuery в конце страницы



↓ Также Вам будет интересно ↓
Может быть Вы видели когда-то всплывающий блок, который выдвигается, когда вы дочитываете последнюю часть статьи. В этом блоке обычно показана еще одна статья из той же категории, и я думаю, что это может быть очень интересно для любого блога или веб-сайта, имеющего статьи.
В этом всплывающем блоке можно поместить любой контент, который Вы хотите, чтобы пользователь увидел после прочтения статьи. Что-то подобное уже было в уроке, как создать всплывающую панель навигации для сайта. Идея состоит в том, что последний абзац будет иметь специальный id
, который и будет вызывать этот всплывающий блок с контентом.
Думаю суть ясна, давайте начнем!
HTML код для блока
Во-первых, нам нужно где-то в абзаце, в конце добавить id="last"
, дойдя до которого пользователь увидит всплывающее окно:
1 2 3 |
<p id="last"> Some paragraph text </p> |
А вот и структура самого блока, в который Вы можете заключить что угодно, но в данном случае это статья.
1 2 3 4 5 6 |
<div id="slidebox"> <a class="close"></a> <p>More in Technology & Science (4 of 23 articles)</p> <h2>The Social Impact of Scientific Research and new Technologies</h2> <a class="more">Read More »</a> </div> |
Ссылка с классом "close"
даст возможность пользователю закрыть окно, и оно больше не появится до обновления страницы.
CSS стилизация
Хорошо, давайте дадим некоторые красивые стили тени, фона для блока:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#slidebox{ width:400px; height:100px; padding:10px; background-color:#fff; border-top:3px solid #E28409; position:fixed; bottom:0px; right:-430px; -moz-box-shadow:-2px 0px 5px #aaa; -webkit-box-shadow:-2px 0px 5px #aaa; box-shadow:-2px 0px 5px #aaa; } |
Мы задаем блоку фиксированное положение fixed
, чтобы он двигался за пользователем. Первоначально блок будет скрыт, а появиться в конце страницы, и мы сделаем небольшой эффект выскальзывания на JQuery.
С помощью CSS3 теней мы сделаем красивый, современный вид блока (но это не будет работать в браузерах IE, кроме наверное IE9 и IE10). Текст и ссылки имеют следующие стили:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#slidebox p, a.more{ font-size:11px; text-transform:uppercase; font-family: Arial,Helvetica,sans-serif; letter-spacing:1px; color:#555; } a.more{ cursor:pointer; color:#E28409; } a.more:hover{ text-decoration:underline; } #slidebox h2{ color:#E28409; font-size:18px; margin:10px 20px 10px 0px; } |
Вы можете изменить стиль блока и контента внутри, в соответствии с Вашим сайтом или Вашим вкусом. Кнопку закрытия всплывающего блока мы выводим следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 |
a.close{ background:transparent url(../images/close.gif) no-repeat top left; width:13px; height:13px; position:absolute; cursor:pointer; top:10px; right:10px; } a.close:hover{ background-position:0px -13px; } |
Со стилями думаю все, теперь приступим к самому главному, на мое мнение, к работе с JavaScript и добавим некоторые эффекты.
Оживление с помощью JavaScript
В начале, мы подключаем библиотеку JQuery:
1 |
<script type="text/javascript" src="/ajax/libs/jquery/1/jquery.min.js"></script> |
Теперь мы добавим две функции. Первая определяет, что пользователь достиг контента с id="last"
, и если это так, то блок выскальзывает. Другая функция закрывает и не показывает блок, если пользователь нажал на кнопку закрыть. Эти 2 функции можно добавить сразу после подключаемой выше JQuery библиотеки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script type="text/javascript"> $(function() { $(window).scroll(function(){ var distanceTop = $('#last').offset().top - $(window).height(); if ($(window).scrollTop() > distanceTop) $('#slidebox').animate({'right':'0px'},300); else $('#slidebox').stop(true).animate({'right':'-430px'},100); }); $('#slidebox .close').bind('click',function(){ $(this).parent().remove(); }); }); </script> |
Вот и все! Я надеюсь, вам понравился этот урок и Вы сможете использовать этот эффект на своем сайте! Скачать готовый исходник, Вы можете как всегда по ссылку вначале статьи. Пользуйтесь!
Данный урок подготовлен для вас командой сайта vladmaxi.net
Источник урока:
Перевел: Владислав Бондаренко

@
Благодарю, попробую для создания меню на своем сайте
Только позицию выхода ещё нужно будет опустить пикселов на 700. А ещё лучше по достижении концастраницы сделать вывод. Поковыряемся
Конечно, лучше ближе к концу страницы, успехов!