Скроллер содержимого на jQuery

Источник: vremenno

Этот клевый скрипт сделали ребята из Флоуплеера.

Возможности

  • горизонтальный и вертикальный скроллинг ;
  • возможность установить количество видимых элементов;
  • возможность скролить мышкой (в том числе и колесиком мыши) и стрелками с клавиатуры (требуется плагин mousewheel.js);
  • создание навигационных клавиш без программирования;
  • встроенные действия: next, prev, nextPage, prevPage, seekTo, begin, end.

Поддержка браузерами

  • Firefox 1.5/2.0+;
  • Internet Explorer 5.5/6.0/7.0+;
  • Safari 2.0+;
  • Opera 9.0+.

Примеры

Понравилось? Теперь давайте посмотрим, как реализовать первый пример.

HTML

<div id="scrollable"> 
<div class="navi">
<span class="active" page="0"></span><span page="1"></span><span page="2"></span> </div> 
<a class="prev"></a> 
<div class="items">
<a>1</a> <a>2</a> <a>3</a> <a>4</a> <a>5</a>
<a>6</a> <a>7</a> <a>8</a> <a>9</a> <a>10</a>
<a>11</a> <a>12</a> <a>13</a> <a>14</a> <a>15</a> 
</div> 
<a class="next"></a> 
</div>

JavaScript

$("#scrollable").scrollable({items:'.items',horizontal:true});

CSS

#scrollable {
background-color:#efefef;
border:1px solid #ddd;
padding:10px 8px;
width:550px;
height:65px;
}

/* контейнер для элементов, которые мы будет скролить */
div.items {
height:66px;
margin-left:8px;
float:left;
width:478px !important;
}

/* стиль элемента */
div.items a {
display:block;
float:left;
margin-right:8px;
width:88px;
height:66px;
background:url(img/item.gif) 0 0 no-repeat;
font-size:50px;
color:#ccc;
line-height:66px;
text-decoration:none;
text-align:center;
cursor:pointer;
}

div.items a:hover {
color:#999;
}

div.items a.active {
background-position:-174px 0;
color:#555;
cursor:default;
}

/* кнопки вперед и назад */
a.prev, a.next {
display:block;
width:30px;
height:30px;
float:left;
background-repeat:no-repeat;
margin:15px 0 0 0;
}

a.prev {
background:url(img/button-left.gif);
}

a.prev:hover {
background:url(img/button-left-over.gif);
}

a.next {
background:url(img/button-right.gif);
}

a.next:hover {
background:url(img/button-right-over.gif);
}

/* верхняя навигация */
div.navi {
position:relative;
top:-30px;
left:310px;
margin-left:-50px;
width:50px;
height:0px;
}

/* элементы верхней навигации */
div.navi span {
width:8px;
height:8px;
float:left;
margin:3px;
background:url(img/dots.png) 0 0 no-repeat;
cursor:pointer;
}

div.navi span:hover {
background-position:0 -8px;
}

div.navi span.active {
background-position:0 -16px;
}

Сейчас вы увидели как сделать такой же скроллер . Давай посмотрим остальные возможности скрипта.

Полный синтаксис

Ниже идет список всех возможностей (и значений по умолчанию).

// выберите один или несколько элементов для скроллинга
$("JQUERY SELECTOR").scrollable({

// дефолтное количество видимых эелементов 5
size: 5,

// по умолчания ставиться вертикалльный скроллинг
horizontal:false,

// время одного прокручивани]
speed: 300,

/*
селектор для кнопки перемотки назад
*/
prev:'.prev',

// это для кпопки вперед
next:'.next',

/*
селектор для верхней навигации
*/
navi:'.navi',

// имя html элемента внутри верхней навигации (точки)
naviItem:'span',

// CSS класс для активного элемента верхней навигации
activeClass:'active',

/*
Элементы, который мы будет скролить, выбираются этим селектором
*/
items: '.items',

// функция, которая вызывается при скроллинге элементов
onSeek: null

});

Использование навигации

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

Рассмотрим такой пример. У нас есть 4 кнопки, кликая по которым вы будете прокручивать список элементов сразу на несколько штук. Количество таких элементов будет зависить от количества элементов внутри скрола .

<div class="navi">
<span page="0" class="active"></span>
<span page="1"></span>
<span page="2"></span>
<span page="3"></span>
</div>

Использование API

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

// выбираем элемент для скрола
var el = $("div.scrollable");

// шаг сперед
el.scrollable("next", [speed]);

// шаг назад
el.scrollable("prev", [speed]);

// страница вперед
el.scrollable("nextPage", [speed]);

// страница назад
el.scrollable("prevPage", [speed]);

// переход на конкретную страницу
el.scrollable("setPage", 1, [speed]);

// 2 шага вперед
el.scrollable("move", 2, [speed]);

// переход на конкретный элемент
el.scrollable("seekTo", 2, [speed]);

// переход к первому элементу
el.scrollable("begin", [speed]);

// и к последнему
el.scrollable("end", [speed]);

Я думаю, что вы уже поняли как много штук можно сделать с помощью этого скрипта.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=18373