jQuery: слайдшоу с помощью Cycle Plugin

Сегодня поговорим о том, как, используя библиотеку jQuery и плагин Cycle Plugin, создать небольшое слайдшоу. Это могут быть новости, изображения, различные виджеты и т.п.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div id="container">
  <a id="prev" href="" title="">?</a>
  <a id="next" href="" title="">?</a>
  <div id="content">
    <div class="contbox">
      <!-- Контент  -->
    </div>
    <div class="contbox">
      <!-- Контент  -->
    </div>
 
    <!-- При необходимости добавьте дополнительные блоки -->
 
  </div>
</div>

#prev и #next используются для прокрутки, можно также включить автозапуск. Содержимое находится в блоках с классом contbox.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#container{
  width:500px;
  margin:20px auto 0 auto
}
#prev, #next{
  display:block;
  width:50%;height:40px;
  text-align:center;
  color:#fff;
  font:2em/35px Arial, Helvetica, sans-serif;
  text-decoration:none;
  background:#757364
}
#prev:hover, #next:hover{
  background:#D9AA81
}
#prev{
  float:left
}
#next{
  float:right
}
#content{
  background:#E6E6D1;
  clear:both
}
  #content .contbox{
    padding:10px;
    width:480px
}

Подключаем следующие файлы в head:

1
2
3
4
5
6
7
8
<!-- Библиотека jQuery -->
<script type="text/javascript" src="jquery.js"></script>
 
<!-- Плагин jQuery Cycle Plugin -->
<script type="text/javascript" src="jquery.cycle.js"></script>
 
<!-- Плагин jQuery Easing Plugin -->
<script type="text/javascript" src="jquery.easing.js"></script>

jQuery Easing Plugin необходим для использования дополнительных эффекты перехода. Нужный эффект передаётся в значении параметра easing. В данном примере используется эффект easeInOutExpo

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
  jQuery(window).bind("load", function() {
    $('#content').cycle({ 
      fx:     'scrollHorz',
      prev:   '#prev',
      next:   '#next',
      height: 250,
      timeout: 0,
      easing: 'easeInOutExpo'
    });
  });
</script>

Обсуждение:

  1. У меня в Файрфоксе 2.0.0.18 при загрузке вначале на мгновение отображаются те слайды, которых я видеть не должен.

  2. Alex

    Алексей, у меня также. Скорее всего это задержка из-за загрузки файлов библиотеки и плагина. Думаю если прописать высоту у блока #content в CSS, то этого не будет.

  3. mxat0488

    У меня вообще появляются какие-то строчки и ничего не ясно что там!

  4. asse

    очень интересный эффект. расстраивает только это секундное появление всех дивов = (

  5. Тук

    Спасибо, очень интересно

  6. Leon

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

    Потом его показать
    document.getElementById(«content»).style.visibility=’visible’;

  7. V0van

    Здравствуйте.
    Большое спаисбо за статью. Очень интересный плагин.
    А не подскажете — как организовать загрузку этих перелистываемых блоков с помощью аякса? Согласитесь, подгружать по необходимости было бы намного практичнее, чем грузить все сразу на страницу.

  8. Обнинск

    Забавная штука
    А подгружать можно данные с помощью ajax через inner html, дописывая блок к старому

  9. V0van

    Да, нащет аякса надо будет поэкспериментировать.
    Кстати, пару дней назад наткнулся — http://www.modernstudio.net/ — тут весь сайт сделан таким способом. Там правда используется не эта библиотека, но принцип тотже. Очень даже неплохо смотрится..

  10. anadikt

    спасибо огромное, давно думал как уменьшить место на сайте, которое занимают новости… теперь они в маленьком блоке и можно их листать) прикольно для пользователе, и для меня удобно!!!

  11. Alex

    Чтобы не было этого секундного появления всех дивов, поставьте для каждого из них style=»display:none».

    • Alexey

      Alex, лучше использовать функцию jQuery hide(), так дивы будут видны тем, у кого отключён javascript.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*