3 727 Скрипты / Slider

Вращающийся слайдер изображений

Вращающийся слайдер изображений

Ассиметричный слайдер изображений в котором при смене картинок происходит их небольшой поворот. Добавлена опция автозапуска и прокрутка с помощью колесика мыши.
В слайдере будем использовать плагин jQuery 2D Transformation Plugin для поворота изображений и плагин jQuery Mousewheel Plugin для использования колесика мыши.

Подключаем необходимые файлы:

<script type="text/jаvascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/jаvascript" src="js/jquery.transform-0.9.3.min_.js"></script>
<script type="text/jаvascript" src="js/jquery.mousewheel.js"></script>
<script type="text/jаvascript" src="js/jquery.RotateImageMenu.js"></script>

HTML

Во-первых создадим оболочку вокруг всех наших элементов слайдера:

<div class="rm_wrapper">
...
</div>

Внутри оболочки поместим контейнер со списком, масками и угловыми элементами, заголовок и скрытый DIV содержащий всё множество изображений.

Так в неупорядоченном списке будет содержаться первый набор из четырех изображений, где каждый элемент списка имеет свои атрибуты степени поворота изображений. Эти данные мы будем использовать, чтобы узнать, какие изображения будут следующими и на какой угол каждое изображение будет повернуто.
DIVы масок и углов будут абсолютными элементами, которые будем помещать над слайдером.
Далее добавим элементы навигации и управления автозапуском.
<div class="rm_nav">
    <a id="rm_next" href="#" class="rm_next"></a>
    <a id="rm_prev" href="#" class="rm_prev"></a>
</div>
<div class="rm_controls">
    <a id="rm_play" href="#" class="rm_play">Плей</a>
    <a id="rm_pause" href="#" class="rm_pause">Пауза</a>
</div>

CSS

Сначала установим некоторые стили и определим свойства для body (если у нас будет другой цвет фона, то придется изменять и цвет фона и границ некоторых элементов самого слайдера).

@import url('reset.css');
body{
    background:#f0f0f0;
    color:#000;
    font-family: 'PT Sans Narrow', Arial, sans-serif;
    font-size:16px;
}
a{
    color:#000;
    text-decoration:none;
}
h1{
    padding:10px;
    margin:20px;
    font-size:40px;
    text-transform:uppercase;
    text-shadow:0px 0px 1px #fff;
    color:#333;
    background:transparent url(../images/line.png) repeat-x bottom left;
}
Основная оболочка будет следующей:
.rm_wrapper{
    width:1160px;
    margin:0 auto;
    position:relative;
}
Контейнер слайдера будет иметь overflow:hidden:
.rm_container{
    width:1050px;
    overflow:hidden;
    position:relative;
    height:530px;
    margin:0 auto;
}
Заголовок будет иметь следующий стиль:
.rm_container h2{
    background:transparent url(../images/lines.png) repeat top left;
    padding:10px 30px;
    position:absolute;
    bottom:170px;
    right:0px;
    color:#000;
    font-size:36px;
    text-transform:uppercase;
    text-shadow:1px 0px 1px #fff;
}
Далее определим ширину для списка:
.rm_container ul{
    width:1170px;
}
Далее установим стили для маски и угловых элементов. Они будут абсолютно с позиционированы и с серым фоном.Элементы навигации будут помещены слева и справа от основного контейнера:
.rm_nav a{
    position:absolute;
    top:200px;
    width:38px;
    height:87px;
    cursor:pointer;
    opacity:0.7;
}
.rm_nav a:hover{
    opacity:1.0;
}
.rm_nav a.rm_next{
    background:transparent url(../images/next.png) no-repeat top left;
    right:0px;
}
.rm_nav a.rm_prev{
    background:transparent url(../images/prev.png) no-repeat top left;
    left:0px;
}
Кнопки плей и пауза поместим сверху слева в основном контейнере:

JS

Начнем с кеширования элементов и проверки, если будем иметь дело с особенным браузером)

//our 4 items
var $listItems         = $('#rm_container > ul > li'),
    totalItems        = $listItems.length,
    //the controls
    $rm_next        = $('#rm_next'),
    $rm_prev        = $('#rm_prev'),
    $rm_play        = $('#rm_play'),
    $rm_pause        = $('#rm_pause'),
    //the masks and corners of the slider
    $rm_mask_left    = $('#rm_mask_left'),
    $rm_mask_right    = $('#rm_mask_right'),
    $rm_corner_left    = $('#rm_corner_left'),
    $rm_corner_right= $('#rm_corner_right'),
    //check if the browser is <= IE8
    ieLte8            = ($.browser.msie && parseInt($.browser.version) <= 8),
Определим нашу основную функцию:
RotateImageMenu    = (function() {
    ...
})();
RotateImageMenu.init();
И определим следующее в нашей функции:Вот и всё. Удачи в использовании.
Скачать 715Загрузок 466,29 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи