Ext.define('saas.view.home.InfoCard', { extend: 'Ext.panel.Panel', xtype: 'infocard', latyou: 'fit', initComponent: function() { var me = this; var view = Ext.create('Ext.view.View', { store : Ext.create('Ext.data.Store', { fields: ['title', 'content', 'color'], data: me.infoData, }), tpl: new Ext.XTemplate([ '
', '', '
', '
', '
x-bg-{color}', ' x-bg-default', '">', '

{title}

', '

{content}

', '
', '
', '
', '
', '
' ]), itemSelector: 'div.x-info-card-body', }); Ext.apply(me, { userCls: 'x-info-card ' + me.userCls, items: [{ xtype: 'button', cls: 'x-scroller-button x-scroller-button-left', // iconCls: 'x-sa sa-arrows-left', disabled: true, handler: function() { me.scrollBody(1); } }, view, { xtype: 'button', cls: 'x-scroller-button x-scroller-button-right', // iconCls: 'x-sa sa-arrows-right', handler: function() { me.scrollBody(-1); } }] }); me.callParent(arguments); }, listeners: { boxready: function(th) { var list = Ext.fly(th.items.items[1].el.dom); var listWidth = Number(list.getStyle('width').replace('px', '')); var bodyWidth = th.body.getBox().width; var btns = th.query('button'); if(listWidth <= (bodyWidth-88)) { btns[0].setVisible(false); btns[1].setVisible(false); return; } Ext.fly(th.body).on('mousewheel', function() { var ev = window.event; var delta = ev.wheelDelta; if(ev.preventDefault) { ev.preventDefault(); } else { ev.cancel=true; } th.scrollBody(delta/120); }) } }, scrollBody: function(delta) { var me = this; var list = Ext.fly(me.items.items[1].el.dom); var marginLeft = Number(list.getStyle('marginLeft').replace('px', '')); var le = marginLeft + delta * 50; var MAX_LEN = list.getBox().width - (me.body.getBox().width - 88); if(le > 0) { le = 0; me.scrollLeftDisabled(); }else if(le < -MAX_LEN) { le = -MAX_LEN; me.scrollRightDisabled(); }else { me.scrollEnable(); } list.setStyle({ marginLeft: le + 'px' }); }, scrollLeftDisabled: function() { var me = this; var leftBtn = me.query('button')[0]; leftBtn.setDisabled(true); }, scrollRightDisabled: function() { var me = this; var rightBtn = me.query('button')[1]; rightBtn.setDisabled(true); }, scrollEnable: function() { var me = this; var btns = me.query('button'); for(var i = 0; i < btns.length; i ++) { btns[i].setDisabled(false); } } });