Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[APORTE] Slider sencillo con Mootools 1.2.4

Estas en el tema de [APORTE] Slider sencillo con Mootools 1.2.4 en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/02/2010, 16:22
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
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 =)
  #2 (permalink)  
Antiguo 07/02/2010, 16:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: [APORTE] Slider sencillo con Mootools 1.2.4

Un ejemplo de uso seria

(este es solo un ejemplo de muestra, sin el modo automatico es mas sencillo)

Código Javascript:
Ver original
  1. var sl = new Slider('elementID', 'accionadorID', 'otroAccionadorID',
  2.                                                         {
  3.                                                             transition : 'bounce:out',
  4.                                                             duration : 2000,
  5.                                                             toggler : 'mouseover',
  6.                                                             mode : 'horizontal',
  7.                                                             auto: true,
  8.                                                             delay: 2000,
  9.                                                             stopElement: 'stop',
  10.                                                             stopEvent: 'click'
  11.                                                         });

Donde elementID seria el identificador del elemento que se desea mover

accionadorID seria el identificador del elemento que hace "esconder" al elemento mencionado arriba

otroAccionadorID seria el identificador del elemento que vuelve a "mostrar" el elemento mencionado escondido

Los parametros del objeto options son

duration : duracion del efecto (de la transicion)
transition : tipo de transicion (ver esta pagina)
toggler : evento accionador del efecto (corresponde al elemento pasado, obviamente)
mode : modo, puede ser horizontal o vertical
auto : modo automatico (default: false)
delay : intervalo de tiempo (en ms) para el modo automatico.
stopElement : identificador del elemento que hara que se detenga el modo automatico
stopEvent : evento que hara que se detenga el efecto (asociado con stopElement, obviamente)

Un ejemplo del uso (automatico)
Código HTML:
<html>
<head>
<script type="text/javascript" src="js/mootools.js"></script>
<script type="text/javascript" src="js/slider.js"></script>
<script type="text/javascript">

window.addEvent('domready', function(){

var sl = new Slider('content', null, null, {
                                                            transition : 'bounce:out',
                                                            duration : 2000, 
                                                            toggler : 'mouseover',
                                                            mode : 'horizontal', 
                                                            auto: true, 
                                                            delay: 2000, 
                                                            stopElement: 'stop', 
                                                            stopEvent: 'click'
                                                        });
});
</script>
<style type="text/css">
#slider_container{
    position: relative;
    width: 350px;
    height: 150px;
    background: orange;
    border: 1px solid #000000;
}

#content{
    width: 180px;
    height: 80px;
    background-color: #000000;
    margin: 25px 0 0 75px;
    color: #ffffff;
    text-align: justify;
    padding: 10px;
}
</style>
</head>
<body>
<div id="slider_container">
    <div id="content">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
    </div>
</div>
<a href="#" id="stop">Detener</a>
</body>
</html> 
Un ejemplo sin el modo automatico

Código HTML:
<html>
<head>
<script type="text/javascript" src="js/mootools.js"></script>
<script type="text/javascript" src="js/slider.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){

   var sl = new Slider('content', 'col_izq', 'col_der', {
                                                            transition : 'bounce:out',
                                                            duration : 2000, 
                                                            toggler : 'mouseover',
                                                            mode : 'horizontal', 
                                                        });
});
</script>
<style type="text/css">
#slider_container{
    position: relative;
    width: 350px;
    height: 150px;
    background: orange;
    border: 1px solid #000000;
}

#content{
    width: 180px;
    height: 80px;
    background-color: #000000;
    margin: 25px 0 0 75px;
    color: #ffffff;
    text-align: justify;
    padding: 10px;
}

#col_izq, #col_der{
    position: absolute;
    width: 50px;
    height: 37px;
    top: 0;
    left: 0;
    background-color: #ffffff;
    border: 1px solid #000000;
    font-size: 13px;
    padding: 13px 0 0 0;
    text-align: center;
}

#col_der{ left: 298px; }
</style>
</head>
<body>
<div id="slider_container">
    <div id="col_izq">Ocultar</div>
    <div id="content">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
    </div>
    <div id="col_der">Mostrar</div>
</div>
</body>
</html> 
Espero que sirva!

NOTA: en breve le agregare el metodo para volver el efecto al pararlo =)
__________________
HV Studio
Diseño y desarrollo web

Etiquetas: mootools, sencillo, slider, aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.