Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2010, 16:22
Avatar de jackson666
jackson666
 
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
[APORTE] Slider sencillo con Mootools 1.2.4

Buenasss gente que tal.

Hace rato ya que venia con ganas de hacer algo asi, por mas sencillo que sea, simplifica bastante codigo y es simple de usar =).

Es un slider super sencillo hecho con la ultima version de mootools, que se puede descargar aqui.

Para ver un ejemplo en funcionamiento click aqui

Pongo el codigo y explico su funcionamiento:

1) Para su correcto funcionamiento se debe agregar la siguiente linea antes del siguiente script

Código Javascript:
Ver original
  1. <script type="text/javascript" src="js/mootools.js"></script>

Demas esta decir, que el src varia segun donde tengan ubicado el framework...

slider.js

Código Javascript:
Ver original
  1. var Slider = new Class({
  2.    
  3.             options: {
  4.                         duration: 1200,
  5.                         transition: 'linear',
  6.                         toggler: 'click',
  7.                         mode: 'horizontal',
  8.                         auto: false,
  9.                         delay: false,
  10.                         stopElement: false,
  11.                         stopEvent: 'click'
  12.                      },
  13.            
  14.             element: null, back: null, fwd: null, timer: null,
  15.            
  16.             automatic: function(){
  17.                    
  18.                     var _this = this;
  19.                     var contador = 0;
  20.  
  21.                     var func = function(){
  22.  
  23.                     _this.element.removeEvent(_this.options.toggler);
  24.                    
  25.                    // En realidad las dos comillas simples, no van
  26.                     if(contador '%' 2 == 0){
  27.                        
  28.                     _this.element.addEvent(_this.options.toggler, function(ev){
  29.                     _this.element.set('slide',{
  30.                                               mode : _this.options.mode,
  31.                                               transition : _this.options.transition,
  32.                                               duration: _this.options.duration
  33.                                              }).slide('out');
  34.                     });
  35.                    
  36.                     }else{
  37.                        
  38.                         _this.element.addEvent(_this.options.toggler, function(ev){
  39.                         _this.element.slide('in');
  40.                        
  41.                         });
  42.                        
  43.                     }                    
  44.                    
  45.                     _this.element.fireEvent(_this.options.toggler);
  46.                    
  47.                     contador++;
  48.                        
  49.                     }
  50.                    
  51.                     _this.timer = func.periodical(_this.options.delay);                    
  52.                    
  53.             },
  54.            
  55.             setStopper: function(){
  56.  
  57.                 var _this = this;
  58.                
  59.                 $(_this.options.stopElement).addEvent(_this.options.stopEvent, function(){
  60.                    
  61.                     $clear(_this.timer);
  62.                    
  63.                 });
  64.                
  65.             },
  66.            
  67.             initialize: function(elementID, backButtonID, fwdButtonID, config){
  68.                
  69.                     var _this = this;
  70.  
  71.                     if($type(elementID)){ _this.element = $(elementID); }else{ return false; }
  72.                     if(!$type(backButtonID)){ _this.back = $(elementID); }else{ _this.back = $(backButtonID); }
  73.                     if(!$type(fwdButtonID)){ _this.fwd = $(elementID); }else{ _this.fwd = $(fwdButtonID); }
  74.                    
  75.                     if($type(config) == 'object'){
  76.                         for(var i in _this.options){
  77.                             _this.options[i] = config[i];
  78.                         }
  79.                     }
  80.                    
  81.                     if(_this.options.auto == true && $type(_this.options.delay) == 'number'){
  82.                        
  83.                         if(_this.options.stopElement){
  84.                             _this.setStopper();
  85.                         }
  86.                         _this.automatic();
  87.                        
  88.                     }else{
  89.                         _this.back.addEvent( _this.options.toggler, function(ev){
  90.                         ev.stop();
  91.                         _this.element.set('slide',{
  92.                                                   mode : _this.options.mode,
  93.                                                   transition : _this.options.transition,
  94.                                                   duration: _this.options.duration
  95.                                                  }).slide('out');
  96.                         });
  97.                        
  98.                         _this.fwd.addEvent(_this.options.toggler, function(ev){
  99.                         ev.stop();
  100.                         _this.element.slide('in');
  101.                         });
  102.                     }
  103.             }
  104.            
  105. });
__________________
HV Studio
Diseño y desarrollo web

Última edición por jackson666; 07/02/2010 a las 17:18 Razón: agregado ejemplo de funcionamiento =)