Ротируемые прилепленные записи — превосходное решение для сохранения свободного пространства сайта. В данной статье мы несколько усовершенствуем наш проект, добавив индикатор слайдов, чтобы пользователь знал, сколько записей ему будет продемонстрировано, и всегда мог переместиться к интересующей его записи. Давайте приступим к реализации указанного решения.
Для начала нам понадобится создать небольшой интерфейс. Внутри обертки #stickyRotate из предыдущей статьи я размещу код, отвечающий за добавление блока div следом за последней прилепленной записью:
... jQuery('.sticky:last') .after('<div id="stickyNav" style="position: absolute; padding: 10px 0 0 0; margin-top: 280px; height: 25px; width: 650px; color: #eee; background: #000; text-align: center"></div>'); ...
Над этим фрагментом нам понадобится расположить jQuery код, отвечающий за вывод числового индикатора записи:
... jQuery('.sticky') .each( function (i){ jQuery('#stickyNav').fadeTo(0, 0.8) .append("<div class='sN' style='display:inline; margin: 0 5px; border: 1px solid #999; padding: 2px 5px;'>"+(i+1)+"</div> "); }); ...
Наконец, для достижения требуемого эффекта, мы должны вернуться к нашей функции loopStickies и несколько изменить .animate(), добавив к ней функцию обратного вызова. Результирующий код будет выглядеть следующим образом:
... jQuery('.sticky') .each( function (i){ jQuery(this) /*make sure each div is on it's own z-index*/ .css('z-index','i+10') .animate({'backgroundColor': '#000000'}, i*duration, function(){ jQuery(this).fadeIn('slow'); //interactivity jQuery("#stickyNav .sN").css('color','#666666'); jQuery('#stickyNav .sN:eq('+i+')').css('color','#ffffff'); } );//end animate }); //end each ...
Селектор :eq() позволяет вывести номер записи и выделить его среди других номеров. Результат представлен на следующем скриншоте: