InfiniteCarousel

Ext.define('Ext.ux.InfiniteCarousel', {	
  extend: 'Ext.Carousel',
  xtype: 'infinitecarousel',
  config: {
    indicator: false
  },
  initConfig: function(){
    var me = this;
    me.callParent(arguments);
    me.delay = me.config.delay;
    delete me.config;
  },
  initialize: function(){
    var me = this;
    me.callParent();
    
    var isEven = function(nb){
        return (nb%2 == 0) ? true : false;
    };
    
    me.nbItems = me.getItems().length;
    me.interval = (isEven(me.nbItems) ? me.nbItems/2 : (me.nbItems-1)/2);
    me.setActiveItem(me.interval);
    
    me.on('activeitemchange', me.onActiveItemChange, me);
    if(me.delay > 0)
      me.timeout = Ext.defer(me.rotate, me.delay, me);
  },
  onActiveItemChange: function(c,v,ov){
    var me = this;
    
    if (me.timeout){
      clearTimeout(me.timeout);
      me.timeout = Ext.defer(me.rotate, me.delay, me);
    }
    
    var active = c.getActiveIndex(),
        direction = (c.getItems().indexOf(v) > c.getItems().indexOf(ov)) ? 'forward' : 'backward',
        container = (direction=='forward') ? c.getAt(active-me.interval-1) : c.getAt(active+me.interval+1);
    
    c.remove(container, false);
    (direction=='forward') ? c.add(container) : c.insert(0,container);
  },
  rotate: function(){
    this.next();
  }
});
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值