¿Es posible deshabilitar el uso del arrastre para intercambiar entre los paneles del carrusel? Quiero usar solo indicador.Desactivar el arrastre en el carrusel
Respuesta
Try override afterRender método en el carrusel; (I elimina eventos de arrastre sobre el método childs)
afterRender : function() {
Ext.Carousel.superclass.afterRender.call(this);
this.mon(this.body, {
direction : this.direction,
scope : this
});
this.el.addCls(this.baseCls + "-" + this.direction)
}
código entero;
this.car = new Ext.Carousel({
ui : 'light',
items: [
{
html: '<p>Carousels can be vertical and given a ui of "light" or "dark".</p>',
cls : 'card card1'
},
{
html: 'Card #2',
cls : 'card card2'
},
{
html: 'Card #3',
cls : 'card card3'
}],
afterRender : function() {
Ext.Carousel.superclass.afterRender.call(this);
this.mon(this.body, {
direction : this.direction,
scope : this
});
this.el.addCls(this.baseCls + "-" + this.direction)
}
});
Solo lanzando esto para el Sencha Touch 2.0 personas. La solución anterior no funciona para Sencha Touch 2.0, pero hay una solución bastante fácil.
Ext.define('Ext.LockableCarousel', {
extend: 'Ext.Carousel',
id: 'WelcomeCarousel',
initialize: function() {
this.onDragOrig = this.onDrag;
this.onDrag = function (e) { if(!this.locked){this.onDragOrig(e);} }
},
locked: false,
lock: function() { this.locked = true; },
unlock: function() { this.locked = false; }
});
Esto funcionará exactamente como un carrusel, excepto que ahora puede llamar a .lock y .unlock en él. Entonces usted podría hacer algo como:
Ext.Viewport.add(Ext.create('Ext.LockableCarousel', {
id: 'LockableCarousel',
fullscreen: true,
hidden: false,
items: [
{
html : 'Item 1',
style: 'background-color: #5E99CC'
},
{
html : '<a href="#" onclick="Ext.getCmp(\'LockableCarousel\').lock();">Lock</a><br /><a href="#" onclick="Ext.getCmp(\'LockableCarousel\').unlock();">Unlock</a>',
style: 'background-color: #759E60'
}
]
}));
Gracias por el ejemplo de código. Incluso desactiva el indicador, por lo que realmente es todo lo que necesitaba para bloquear temporalmente el carrusel. –
Totalmente simple. Moví la var 'bloqueada' al objeto config para poder establecer el estado bloqueado predeterminado al agregar el carrusel personalizado. Esto cambia accediendo al var bloqueado a: this.getLocked(); – daxiang28
Muy buena solución, funciona genial. ¡Gracias! – Phil
- 1. Efecto 3D Carrusel en el iPad
- 2. Desactivar el arrastre de una imagen del sistema de archivos en un navegador.
- 3. jQuery droppable - recibir eventos durante el arrastre (no solo en el arrastre inicial)
- 4. Arrastre con mootools en el móvil
- 5. jquery arrastre y gire en el ángulo
- 6. Vista de carrusel en Android
- 7. Arrastre el lienzo en el generador de interfaz
- 8. biblioteca carrusel para android
- 9. jQuery 3D carrusel?
- 10. Bootstrap Carrusel No funciona
- 11. Cómo crear carrusel ViewPager?
- 12. Desactivar el registro en PDFBox
- 13. Desactivar TabStop en el expansor
- 14. Carrusel 3D para Android?
- 15. jQuery Carrusel. Cómo mostrar el elemento siguiente o anterior solo
- 16. Cómo deshabilitar el arrastre horizontal? (webkit-overflow-scrolling: touch;)
- 17. Symfony2 ¿desactivar el caché?
- 18. Desactivar el dispositivo
- 19. Desactivar localmente el relleno
- 20. Bootstrap Número carrusel icono activa
- 21. Cómo calcular el ángulo de rotación del panel más cercano en el carrusel
- 22. carrusel como galería en jQuery Mobile
- 23. clon node en arrastre
- 24. Implementación gratuita del carrusel WPF
- 25. ¿Cómo crear Vertical Carrusel en Android?
- 26. Google Map Api v3 evento de arrastre en el mapa
- 27. Arrastre el mouse para rotar y escalar en Java
- 28. Determine el proxy de arrastre cuando use itemRenderer en DataGrid
- 29. Desactivar el botón de menú?
- 30. Desactivar el historial de guardado
Gracias, funciona. Pero no estoy seguro de cómo funciona :) ¿Puedes explicarlo? – Egor4eg
Por supuesto. La idea es simple Tenemos que desactivar el arrastre y en ese caso es posible eliminar el detector de arrastre. Arrastre el oyente agregado en el método afterRender en sencha-touch.js. Anulamos el método afterRender para que el método afterRender de sencha-touch no se ejecute, nuestro nuevo método se ejecute y nuestro método no agregue un detector de arrastre. Espero que esta descripción sea clara. :) –
Gracias, entendí la idea. – Egor4eg