Вход Регистрация
Файл: module-assets/admin/pagedown-bootstrap/demo/browser/bootstrap/docs/assets/js/bootstrap-carousel.js
Строк: 181
<?php
/* ==========================================================
 * bootstrap-carousel.js v2.0.1
 * http://twitter.github.com/bootstrap/javascript.html#carousel
 * ==========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ========================================================== */


!function( $ ){

  
"use strict"

 
/* CAROUSEL CLASS DEFINITION
  * ========================= */

  
var Carousel = function (elementoptions) {
    
this.$element = $(element)
    
this.options = $.extend({}, $.fn.carousel.defaultsoptions)
    
this.options.slide && this.slide(this.options.slide)
  }

  
Carousel.prototype = {

    
cycle: function () {
      
this.interval setInterval($.proxy(this.nextthis), this.options.interval)
      return 
this
    
}

  , 
to: function (pos) {
      var 
$active this.$element.find('.active')
        , 
children $active.parent().children()
        , 
activePos children.index($active)
        , 
that this

      
if (pos > (children.length 1) || pos 0) return

      if (
this.sliding) {
        return 
this.$element.one('slid', function () {
          
that.to(pos)
        })
      }

      if (
activePos == pos) {
        return 
this.pause().cycle()
      }

      return 
this.slide(pos activePos 'next' 'prev', $(children[pos]))
    }

  , 
pause: function () {
      
clearInterval(this.interval)
      
this.interval null
      
return this
    
}

  , 
next: function () {
      if (
this.sliding) return
      return 
this.slide('next')
    }

  , 
prev: function () {
      if (
this.sliding) return
      return 
this.slide('prev')
    }

  , 
slide: function (typenext) {
      var 
$active this.$element.find('.active')
        , 
$next next || $active[type]()
        , 
isCycling this.interval
        
direction type == 'next' 'left' 'right'
        
fallback  type == 'next' 'first' 'last'
        
that this

      
if (!$next.length) return

      
this.sliding true

      isCycling 
&& this.pause()

      
$next $next.length $next this.$element.find('.item')[fallback]()

      if (!$.
support.transition && this.$element.hasClass('slide')) {
        
this.$element.trigger('slide')
        
$active.removeClass('active')
        
$next.addClass('active')
        
this.sliding false
        this
.$element.trigger('slid')
      } else {
        
$next.addClass(type)
        
$next[0].offsetWidth // force reflow
        
$active.addClass(direction)
        
$next.addClass(direction)
        
this.$element.trigger('slide')
        
this.$element.one($.support.transition.end, function () {
          
$next.removeClass([typedirection].join(' ')).addClass('active')
          
$active.removeClass(['active'direction].join(' '))
          
that.sliding false
          setTimeout
(function () { that.$element.trigger('slid') }, 0)
        })
      }

      
isCycling && this.cycle()

      return 
this
    
}

  }


 
/* CAROUSEL PLUGIN DEFINITION
  * ========================== */

  
$.fn.carousel = function ( option ) {
    return 
this.each(function () {
      var 
$this = $(this)
        , 
data $this.data('carousel')
        , 
options typeof option == 'object' && option
      
if (!data$this.data('carousel', (data = new Carousel(thisoptions)))
      if (
typeof option == 'number'data.to(option)
      else if (
typeof option == 'string' || (option options.slide)) data[option]()
      else 
data.cycle()
    })
  }

  $.
fn.carousel.defaults = {
    
interval5000
  
}

  $.
fn.carousel.Constructor Carousel


 
/* CAROUSEL DATA-API
  * ================= */

  
$(function () {
    $(
'body').on('click.carousel.data-api''[data-slide]', function ( ) {
      var 
$this = $(this), href
        
$target = $($this.attr('data-target') || (href $this.attr('href')) && href.replace(/.*(?=#[^s]+$)/, '')) //strip for ie7
        
options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
      
$target.carousel(options)
      
e.preventDefault()
    })
  })

}( 
window.jQuery );
?>
Онлайн: 1
Реклама