21 212 Скрипты / Slider

Прокрутка изображений

Горизонтальная или вертикальная прокрутка миниатюр изображений. Использует jQuery и опционально easing плагин для эффектов.

HTML

Рассмотрим на примере первой Демки.

<div id="outer_container">
<div id="thumbScroller">
    <div class="container">
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb1.jpg" title="Дорога" alt="Дорога" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb2.jpg" title="Цветок" alt="Цветок" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb3.jpg" title="Сумерки" alt="Сумерки" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb4.jpg" title="Водопад" alt="Водопад" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb5.jpg" title="Каньон" alt="Каньон" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb6.jpg" title="Дорога" alt="Дорога" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb7.jpg" title="Лес" alt="Лес" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb8.jpg" title="Дом" alt="Дом" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb9.jpg" title="Рай" alt="Рай" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb10.jpg" title="Деревья" alt="Деревья" class="thumb" /></a></div>
        </div>
        <div class="content">
            <div><a href="#"><img src="thumbs/thumb11.jpg" title="Листья" alt="Листья" class="thumb" /></a></div>
        </div>
    </div>
</div>
</div>

CSS

Только для Демо 1:

#outer_container{margin:60px auto; width:600px; padding:0 10px; background:#000; border:1px solid #999;}
#thumbScroller{position:relative; margin:auto;}
#thumbScroller{width:600px;}
#thumbScroller, #thumbScroller .container, #thumbScroller .content{height:170px;}
#thumbScroller{overflow:hidden;}
#thumbScroller .container{position:relative; left:0;}
#thumbScroller .content{width:260px; float:left;}
#thumbScroller .content div{padding:10px 15px; height:100%; font-family:Verdana, Geneva, sans-serif; font-size:13px;}
#thumbScroller img{border:5px solid #fff;}

jаvascript

Подключаем в шапке jQuery, в некоторых демках, дополнительно подключается плагин easing:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

В теле страницы, перед закрывающим тегом body вставляем скрипт, который будет взависимости от положения курсора обеспечивать прокрутку изображений:

$outer_container=$("#outer_container");
$thumbScroller=$("#thumbScroller");
$thumbScroller_container=$("#thumbScroller .container");
$thumbScroller_content=$("#thumbScroller .content");
$thumbScroller_thumb=$("#thumbScroller .thumb");
 
var sliderWidth=$thumbScroller.width();
var itemWidth=$thumbScroller_content.width();
 
$thumbScroller_content.each(function (i) {
    totalContent=i*itemWidth;   
    $thumbScroller_container.css("width",totalContent+itemWidth);
});
 
$thumbScroller.mousemove(function(e){
    var mouseCoords=(e.pageX - this.offsetLeft);
      var mousePercentY=mouseCoords/sliderWidth;
      var destY=-(((totalContent-(sliderWidth-itemWidth))-sliderWidth)*(mousePercentY));
      var thePosA=mouseCoords-destY;
      var thePosB=destY-mouseCoords;
      if(mouseCoords==destY){
        $thumbScroller_container.stop();
      }
      if(mouseCoords>destY){
        $thumbScroller_container.css("left",-thePosA);
      }
      if(mouseCoords<destY){
        $thumbScroller_container.css("left",thePosB);
      }
});
 
var fadeSpeed=300;
 
$thumbScroller_thumb.each(function () {
    var $this=$(this);
    $this.fadeTo(fadeSpeed, 0.5);
});
 
$thumbScroller_thumb.hover(
    function(){ //mouse over
        var $this=$(this);
        $this.stop().fadeTo(fadeSpeed, 1);
    },
    function(){ //mouse out
        var $this=$(this);
        $this.stop().fadeTo(fadeSpeed, 0.5);
    }
);

Для вертикального варианта прокрутки, скрипт будет несколько другим.

Скачать 2772Загрузок 171,24 Kb
Демо

Комментарии

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

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