Comunidad de diseño web y desarrollo en internet online

Evento Swipe desde puro javascript

Citar            
MensajeEscrito el 05 Jun 2013 11:59 am
Buenas a todos y gracias por vuestro tiempo ,

Estoy practicando pra realizar una web que funcione scroll lateral tanto desde el wheel del mouse como desde el swipe de un dispositivo movil. Hasta ahora todo funciona exceptuando los dispositivios moviles que no sean IOS .

Haciendo algunas pruebas para captar los eventos que se disparan cuando realizo un swipe desde android he visto que primero lanza un evento de Mouse y despues el evento touchstart.

Yo he separado los eventos por mouse y touch , las funciones que gestionan esto seran las siguientes :


Código Javascript :



function compSwipe(){
   
          var xIni;
          var yIni;
        isTouchable=true;
          //var canvas = document.getElementById('objeto');
          window.addEventListener('touchstart', function(e){
              if (e.targetTouches.length == 1) { 
              var touch = e.targetTouches[0]; 
              xIni = touch.pageX;
              yIni = touch.pageY;
            }
          }, false);
          
          window.addEventListener('touchmove', function(e){
           e.preventDefault();
              if (e.targetTouches.length == 1) { 
                var touch = e.targetTouches[0]; 
              if((touch.pageX>xIni+20) && (touch.pageY> yIni-5) && (touch.pageY<yIni+5)){
                  delta=-1;
                 handleSwipe(delta);
                
              }
          
              if((touch.pageX<xIni-20) && (touch.pageY> yIni-5) && (touch.pageY<yIni+5)){
                  delta=+1;
                  handleSwipe(delta);
               
              } 
          }
          }, false); 
          
                     
}   
   
   function wheel(event){
      var minScrollTime = 100;
      var now = new Date().getTime();
      var delta = 0;
      
   
      if (!scrollTimer) {
         if (now - lastScrollFireTime > (3 * minScrollTime)) {
            if (!event) event = window.event;
            if (event.wheelDelta) {
               delta = event.wheelDelta/120; 
            } else if (event.detail) {
               delta = -event.detail/3;
            }
            if (delta)
               
               handle(delta);
            lastScrollFireTime = now;
         }
         scrollTimer = setTimeout(function() {
            scrollTimer = null;
            lastScrollFireTime = new Date().getTime();
         }, minScrollTime);
      }
      
      if (event.preventDefault)
         event.preventDefault();
      event.returnValue = false;
      
   
   }




Alguien puede encaminarme a como usar el swipe sin necesidad de una libreria externa ?

Muchas gracias por vuestro tiempo ,

Por erone

16 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Jun 2013 08:49 am
Si no es el lugar o falta información , puedo extenderla sin problemas, muchas gracias como siempre

Por erone

16 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Jun 2013 02:07 pm
lo que necesitas son eventos cross browser,y dices que quieres usarlo a puro javascript, solo te digo que si lo haces hazlo solo para una plataforma,ahora si quieres ahcerlas para mas, entonces tendrias que hacerlas independientemente ya que cada navegador, que este en una,tablet,movil,pc,televisor, el comprotamiento puede variar mucho o poco, si quieres trabajar con android habria que buscar como hacer swipe en un terminal android,y por que no usar frameworks dedicados a esto

http://www.queness.com/post/11755/11-multi-touch-and-touch-events-javascript-libraries

bueno ahora si lo quieres seguir haciendo en javascript puro, entonces no te queda de otra que entrar en alguna libreria ya hecha y ver como fue realizada, bueno aca te dejo una pagina donde se el swipe scroll CROSS-BROWSER a puro javascript(bueno eso creo no la revise a fondo)

http://kiinto.com/experiments/javascript/scriptlets/swipeScroll/

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Jun 2013 04:54 pm
Muchísimas gracias

Por erone

16 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.