デモ

  • 1 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 2 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 3 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 4 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 5 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 6 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 7 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 8 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 9 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ>ストテキスト
  • 10 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 11 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 12 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 13 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 14 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 15 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 16 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 17 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 18 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 19 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト
  • 20 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキ ストテキスト

ソース

javascript

(function($) {
  $.simpleSilider =function(element, options) {
    var defaults = {
          targetId  : 'slide',
          prevClass : 'prev',
          nextClass : 'next',
          easing    : 'linear',
          count     : 0,
          speed     : 500,
          slideUl   : '',
          slideList : '',
          mBottom   : '',
          maxCount  : ''
        }

    var plugin = this;
        plugin.settings = {}

    var $element = $(element),
        element = element;

    plugin.init = function() {
      plugin.settings    = $.extend({}, defaults, options);
      defaults.slideUl   = $('#' + defaults.targetId + ' > ul');
      defaults.slideList = $('li', defaults.slideUl);
      defaults.mBottom   = parseInt(defaults.slideList.css('margin-bottom'));
      defaults.maxCount  = defaults.slideList.length-2;
      defaults.slideAreaHeight     = parseInt($('#' + defaults.targetId).get(0).offsetHeight);
      defaults.slideContentsHeight = parseInt(defaults.slideUl.get(0).offsetHeight);

      $("." + defaults.prevClass).click(function(){
        if (defaults.count <= 0) return false;
        previewAction();
        return false;
      });
      $("." + defaults.nextClass).click(function(){
        if (defaults.count >= defaults.maxCount) return false;
        nextAction();
        return false;
      });
      sliderCallback();
    }


    /**
     * preview process action
     *
     */
    var previewAction = function() {
      defaults.count--;
      defaults.slideUl.animate({
        marginTop : parseInt(defaults.slideUl.css('margin-top'))+defaults.slideList.eq(defaults.count).get(0).offsetHeight+defaults.mBottom+'px'
      },defaults.speed,defaults.easing);
      sliderCallback();
    }

    /**
     * next process action
     *
     */
    var nextAction = function() {
      defaults.slideUl.animate({
        marginTop : parseInt(defaults.slideUl.css('margin-top'))-defaults.slideList.eq(defaults.count).get(0).offsetHeight-defaults.mBottom+'px'
      },defaults.speed,defaults.easing);
      defaults.count++;
      sliderCallback();
    }

    /**
     * slider callback method
     *
     * @param type (action type 'prev' or 'back')
     */
    var sliderCallback = function() {
    }
    plugin.init();
 }
 $.fn.simpleSilider = function(options) {
    return this.each(function() {
       if (undefined == $(this).data('simpleSilider')) {
          var plugin = new $.simpleSilider(this, options);
          $(this).data('simpleSilider', plugin);
       }
    });
 }
})(jQuery);

$(document).ready(function() {
  $.simpleSilider();
});

HTML

<div>
<p id="prev" class="alignC prev"><a href="#"><i class="icon-chevron-up"></i></a></p>
<div id="slide">
<ul>
<li>1  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>2  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>3  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>4  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>5  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>6  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>7  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>8  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>9  テキストテキストテキストテキストテキストテキストテキストテキストテキス>トテキストテキスト</li>
<li>10 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>11 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>12 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>13 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>14 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>15 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>16 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>17 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>18 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>19 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
<li>20 テキストテキストテキストテキストテキストテキストテキストテキストテキス
トテキストテキスト</li>
</ul>

<div id="fade"></div>
</div>
<p id="next" class="alignC next"><a href="#"><i class="icon-chevron-down"></i></a></p>
</div>

CSS

#slide {
  width:600px;
  height: 262px;
  overflow: hidden;
}
#slide ul {
  list-style: none;
  width:600px;
}
#slide ul li {
  display: block;
  margin:5px;
}
#slide #fade {
  bottom:0;
  width:600px;
  height:60px;
  z-index:1;
}
p#prev,p#next {
  border: 1px solid #000;
}

  • jQuery
  • コンテンツスライダー
  • プラグイン