我有一个Sencha Touch 2旋转木马(见http://dev.sencha.com/deploy/touch/examples/production/carousel/index.html)。 我需要在活动项目第一次并且用户尝试导航回来时捕获事件。 此外,当活动项目是最后一个并且用户尝试向前导航时。
我没有在Sencha Touch上发现任何接近我需要的文档: http://docs.sencha.com/touch/2.2.0/#!/api/Ext.carousel.Carousel
让我们从这里开始:
Ext.create('Ext.Carousel', {
fullscreen: true,
defaults: {
styleHtmlContent: true
},
items: [
{
html : 'Item 1',
style: 'background-color: #5E99CC'
},
{
html : 'Item 2',
style: 'background-color: #759E60'
},
{
html : 'Item 3'
}
]});
答案 0 :(得分:0)
var activeItem = 0; // initial active carousel item
Ext.create('Ext.Carousel', {
fullscreen: true,
id: 'q-car',
defaults: {
styleHtmlContent: true
},
initialize: function(){
var caru = Ext.getCmp('q-car'),
ind = caru.getIndicator();
ind.onTap = function(e){
var touch = e.touch,
box = this.element.getPageBox(),
centerX = box.left + (box.width / 2),
centerY = box.top + (box.height / 2),
direction = this.getDirection(),
itemsCount = caru.getItems().length-2; // items length includes the indicator bar.
if(direction === 'horizontal'){
if(touch.pageX >= centerX){
if(activeItem < itemsCount){
this.fireEvent('next', this);
activeItem++
}else{
console.log('end of carousel')
}
}else{
if(activeItem > 0){
this.fireEvent('next', this);
activeItem--
}else{
console.log('begin of carousel')
}
}
}
}
},
items: [
{
html : 'Item 1',
style: 'background-color: #5E99CC'
},
{
html : 'Item 2',
style: 'background-color: #759E60'
},
{
html : 'Item 3'
}
]});