Contenido

Prototype hasta en la sopa

29 Nov

+ 1

No creo que lleguemos a tanto, pero casi. Via Ajaxian descubro una forma de expandir el objeto Event del framework Prototype añadiendolé funcionalidad a la rueda del ratón. De esta forma podemos observar tambien este tipo de evento y usarlo en nuestras aplicaciones junto con el resto de funcionalidades de Prototype.


<script type="text/javascript">
/*
 * Orginal: http://adomas.org/javascript-mouse-wheel/
 * prototype extension by "Frank Monnerjahn" <themonnie @gmail.com>
 */
Object.extend(Event, {
        wheel:function (event){
                var delta = 0;
                if (!event) event = window.event;
                if (event.wheelDelta) {
                        delta = event.wheelDelta/120;
                        if (window.opera) delta = -delta;
                } else if (event.detail) { delta = -event.detail/3;     }
                return Math.round(delta); //Safari Round
        }
});
/*
 * enf of extension
 */

var counterSite=0;
function handleSite(e) {
        counterSite +=  Event.wheel(e);
        $('delta').innerHTML = counterSite +'#'+ Event.wheel(e) + ": " + (Event.wheel(e) <0 ? 'down' : 'up' );
}

var counterDIV=0;
function handleDIV(e) {
        counterDIV +=   Event.wheel(e);
        $('divdelta').innerHTML = counterDIV +'#'+ Event.wheel(e) + ": " + (Event.wheel(e) <0 ? 'down' : 'up' );
}

</script>

 El modo de uso, continúa el mismo modo fácil e intuitivo de la librería.


Event.observe(document, "mousewheel", handleSite, false);
Event.observe(document, "DOMMouseScroll", handleSite, false); // Firefox
Event.observe($('divdelta'), "mousewheel", handleDIV, false);
Event.observe($('divdelta'), "DOMMouseScroll", handleDIV, false); // Firefox

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.