Заходи
Гость

Хостинг

Статистика
Яндекс.Метрика Счетчик PR-CY.Rank
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Ccылки

Свежак

Главная » 2013 » Апрель » 7 » ВИДЖЕТ ДЛЯ ВЫВОДА ПОХОЖИХ НОВОСТЕЙ НА JQUERY И CSS3
18:25
ВИДЖЕТ ДЛЯ ВЫВОДА ПОХОЖИХ НОВОСТЕЙ НА JQUERY И CSS3

ВИДЖЕТ ДЛЯ ВЫВОДА ПОХОЖИХ НОВОСТЕЙ НА JQUERY И CSS3

 

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

 

ПОСМОТРЕТЬ  ДЕМО                                 СКАЧАТЬ  ИСХОДНИК

Итак, давайте начнем!

 

РАЗМЕТКА

HTML структура будет содержать  список с некоторыми вложенными элементов внутри: основной блок с миниатюрами:

<div id="rp_list" class="rp_list">

    <ul>

        <li>

            <div>

                <img src="images/1.jpg" alt=""/>

                <span class="rp_title">Post Title</span>

                <span class="rp_links">

                    <a target="_blank" href="#">Article</a>

                    <a target="_blank" href="#">Demo</a>

                </span>

            </div>

        </li>

        ...

    </ul>

    <span id="rp_shuffle" class="rp_shuffle"></span>

</div>

Все соответствующие сообщения будут перечислены в нашей структуре. В JavaScript мы определим, что мы показываем только 5 сообщений за раз. Конечно, вам нужно заменить #  вашими ссылками. 

Давайте посмотрим на стиль.

CSS

Мы начнем с общих атрибутов стиля:

.rp_list {

    font-family:Verdana, Helvetica, sans-serif;

    position:fixed;

    right:-220px;

    top:40px;

    margin:0;

    padding:0;

}

Как вы можете видеть, список будет иметь фиксированное положение, всегда оставаясь на том же месте, когда пользователь прокручивает страницу. Мы собираемся установим право на отрицательное значение, для того чтобы скрыть весь список.

span.rp_shuffle{

    background:#222 url(../images/shuffle.png) no-repeat 10px 50%;

    width:28px;

    height:14px;

    display:block;

    margin:10px 0px 0px 20px;

    cursor:pointer;

    padding:4px;

    border:1px solid #000;

    -moz-border-radius:5px 0px 0px 5px;

    -webkit-border-bottom-left-radius: 5px;

    -webkit-border-top-left-radius: 5px;

    border-bottom-left-radius: 5px;

    border-top-left-radius: 5px;

}

Список будет иметь следующий стиль:

.rp_list ul{

    margin:0;

    padding:0;

    list-style:none;

}

Элементы списка не будут показанны изначально:

.rp_list ul li{

    width: 240px;

    margin-bottom:5px;

    display:none;

}

Наши основные элементы будут иметь следующие стили:

.rp_list ul li div{

    display: block;

    line-height:15px;

    width: 240px;

    height: 80px;

    background:#333;

    border:1px solid #000;

    -moz-border-radius:5px 0px 0px 5px;

    -webkit-border-bottom-left-radius: 5px;

    -webkit-border-top-left-radius: 5px;

    border-bottom-left-radius: 5px;

    border-top-left-radius: 5px;

}

Эскиз будет размером 70 × 70 пикселей:

.rp_list ul li div img{

    width:70px;

    border:none;

    float:left;

    margin:4px 10px 0px 4px;

    border:1px solid #111;

    -moz-box-shadow:1px 1px 3px #000;

    -webkit-box-shadow:1px 1px 3px #000;

    box-shadow:1px 1px 3px #000;

}

Название службы будут иметь вставки:

span.rp_title{

    font-size:11px;

    color:#ddd;

    height:46px;

    margin:4px 0px 0px 20px;

    display:block;

    text-shadow:1px 1px 1px #000;

    padding-top:3px;

    background:#222;

    -moz-box-shadow:0px 0px 5px #000 inset;

    -webkit-box-shadow:0px 0px 5px #000 inset;

    box-shadow:0px 0px 5px #000 inset;

}

Окошко для ссылки и кнопки будет иметь следующий стиль:

span.rp_links{

    width:195px;

    height:8px;

    padding-top:2px;

    display:block;

    margin-left:42px;

}

span.rp_links a{

    background: #222 url(../images/bgbutton.png) repeat-x;

    padding: 2px 18px;

    font-size:10px;

    color: #fff;

    text-decoration: none;

    line-height: 1;

    -moz-box-shadow: 0 1px 3px #000;

    -webkit-box-shadow: 0 1px 3px #000;

    box-shadow:0 1px 3px #000;

    text-shadow: 0 -1px 1px #222;

    cursor: pointer;

    outline:none;

}

span.rp_links a:hover{

    background-color:#000;

    color:#fff;

}

JAVASCRIPT

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

Когда вы наведите курсор мыши на элемент, он выдвинется до ее полной ширины, раскрывая названия и ссылки.

Мы добавим следующие функции JQuery:

$(function() {

    /**

    * the list of posts

    */

    var $list       = $('#rp_list ul');

    /**

    * number of related posts

    */

    var elems_cnt       = $list.children().length;

 

    /**

    * show the first set of posts.

    * 200 is the initial left margin for the list elements

    */

    load(200);

 

    function load(initial){

        $list.find('li').hide().andSelf().find('div').css('margin-left',-initial+'px');

        var loaded  = 0;

        //show 5 random posts from all the ones in the list.

        //Make sure not to repeat

        while(loaded < 5){

            var r       = Math.floor(Math.random()*elems_cnt);

            var $elem   = $list.find('li:nth-child('+ (r+1) +')');

            if($elem.is(':visible'))

                continue;

            else

                $elem.show();

            ++loaded;

        }

        //animate them

        var d = 200;

        $list.find('li:visible div').each(function(){

            $(this).stop().animate({

                'marginLeft':'-50px'

            },d += 100);

        });

    }

 

    /**

    * hovering over the list elements makes them slide out

    */

    $list.find('li:visible').live('mouseenter',function () {

        $(this).find('div').stop().animate({

            'marginLeft':'-220px'

        },200);

    }).live('mouseleave',function () {

        $(this).find('div').stop().animate({

            'marginLeft':'-50px'

        },200);

    });

 

    /**

    * when clicking the shuffle button,

    * show 5 random posts

    */

    $('#rp_shuffle').unbind('click')

                    .bind('click',shuffle)

                    .stop()

                    .animate({'margin-left':'-18px'},700);

 

    function shuffle(){

        $list.find('li:visible div').stop().animate({

            'marginLeft':'60px'

        },200,function(){

            load(-60);

        });

    }

});

Мы надеемся, что вам понравился этот урок, и он был для вас полезным!

ПОСМОТРЕТЬ  ДЕМО                            СКАЧАТЬ  ИСХОДНИК

Ссылка на источник

Категория: jQuery/JS | Просмотров: 468 | Добавил: Wrecker | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Статьи
[Прогараммирование]
Как работает CSS?
[Прогараммирование]
ЛЕКЦИЯ. Язык Pascal
[Прогараммирование]
Статический анализ: ошибки в медиаплеере и безглючная аська
[Устронение ошибок систем]
Устранение неполадок при возникновении (синего экрана) Blue Screen Of Death (BSOD) (2)
[Прогараммирование]
Разработка ПО с открытыми исходными текстами как особый вид прикладной науки
[Операционные системы]
Особенности применения технологий Lotus Domino и Notes в современных информационных системах
[Менеджмент]
Факторы микросреды организации
[Устронение ошибок систем]
Возможные нежелательные последствия разгона
[Прогараммирование]
ДОКУМЕНТИРОВАНИЕ ПРОГРАММ
[Безопасность систем]
Резервирование и восстановление

Категории
HTML/CSS [21]
jQuery/JS [36]
PHP [4]
Для Ucoz [38]

Популярный софт
Iron Kaspersky Internet Security 2015
Kaspersky Internet Security 2015
Iron Virtual DJ
Virtual DJ
Iron SoundForge 11
SoundForge 11
Iron Alcohol 120
Alcohol 120
Iron Norton Internet Security 2014
Norton Internet Security 2014
Iron Loaris Trojan Remover
Loaris Trojan Remover

Жми

Copyright MyCorp © 2024Конструктор сайтов - uCoz