Comunicación WEB

Comuniquémonos para avanzar

  • Home
  • Contacto
  • Quienes somos
  • Sitemap
Inicio > Ipad | JQuery > Usando los eventos de los dispositivos táctiles

Usando los eventos de los dispositivos táctiles

Cuando estamos desarrollando interfaces web adaptables a dispositivos móviles, principalmente táctiles, tenemos que tener en cuenta que no disponemos de un ratón. Con lo cual, a priori, no nos es posible interactuar con eventos del estilo onMouseMove, ouMouseOver, etc.

Por suerte para los desarrolladores, disponemos de la opción de capturar las acciones del touch en estos dispositivos gracias a los eventos, onTouchStart, onTouchMove y onTouchEnd.

Estos eventos es posible manejarlos en toda la página o solo sobre elementos puntuales, para emular un drag and drop, por ejemplo.

<script>
// Para toda la página sería algo asi
document.onmousemove = function(e){
   console.log(e.pageX + "," + e.pageY);
}
// Para un elemento en concreto
document.getElementById('nodo').onmousestart = function(e){
   console.log('seleccionado elemento en ' + e.pageX + "," + e.pageY)
}
</script>

La acción por defecto en estos casos del touch es hacer scroll en el navegador, tanto vertical como horizontal, en caso de ser posible. Si se desea es posible evitar esta acción por defecto ejecutando lo siguiente:

<script>
document.getElementById('node').onmousemove = function(e){
   //evitando accion por defecto
   e.preventDefault();
   //resto de acciones
   ...
}
</script>

 

Para todos los eventos relacionados con el touch tenemos disponibles la siguiente lista de atributos:

  • touches -> Lista con la información sobre todos los dedos que están tocando la pantalla.
  • targetTouches -> Similar a touches, pero filtrando los dedos que empiezan en el mismo nodo.
  • changedTouches -> Contendra la información sobre los dedos que causaron la última acción.

 

Veamos algunos ejemplos del funcionamiento de las listas, para entender mejor su utilidad:

  • Cuando ponemos un solo dedo sobre la pantalla. Las tres listas contendrán la misma información. La relativa a dicho dedo.
  • Cuando ponemos un segundo dedo sobre la pantalla. touches tendrá dos elementos, uno para cada dedo. Mientras que targetTouches solo contendrá dos elementos si el segundo dedo se posiciona sobre el mismo nodo que el primero y changedTouches solo contendrá información sobre el segundo dedo.
  • Si ponemos dos dedos exactamente al mismo tiempo es posible que tengamos dos elementos en changedTouches.
  • Si movemos los dedos por la pantalla, la única lista que registrara cambios será changedTouches. La que tendrá información sobre tantos dedos como se estén moviendo, por lo menos uno.
  • Cuando levantamos un dedo, su información es eliminada de touches y de targetTouches, pero aparecerá en changedTouches, dado que es la responsable del evento.
  • Cuando retiramos el último dedo, touches y targetTouches se vacian, mientras que changedTouches aun mantiene la información del último dedo.

 

Por otro lado la información recogida sobre un dedo es la siguiente:

  • clientX: coordenada X del touch relativa al viewport. (excluye el offset del scroll)
  • clientY: coordenada Y del touch relativa al viewport. (excluye el offset del scroll)
  • pageX: coordenada X relativa a la página. (incluye scroll)
  • pageY: coordenada Y relativa a la página (incluye scrool)
  • screenX: coordenada X relativa a la pantalla.
  • screenY: coordenada Y relativa a la pantalla.
  • target: Nodo sobre el que se origino el evento.
  • identifier: Identificador numérico, único para cada evento.

Para terminar, veamos un ejemplo sencillo de drag and drop con un solo dedo, para un elemento con id nodo.

<script>
  node = document.getElementById('nodo');
  node.ontouchmove = function(e){
    if(e.touches.length == 1){ // Only deal with one finger
	 var touch = e.touches[0]; // Get the information for finger #1
	 var node = touch.target; // Find the node the drag started from
	 node.style.position = "absolute";
	 node.style.left = touch.pageX + "px";
	 node.style.top = touch.pageY + "px";
    }
  }
</script>

 

touches

Entradas Relacionadas:

  1. HTML5: Adobe abandona el desarrollo de Flash para dispositivos móviles
  2. JQuery: eventos con el ratón

ipad , Iphone , Javascript , smartphone , touch

Aprovechar la vida según Arthur Schnitzler
Menú con fondo adaptable al texto con css

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

*

Imagen CAPTCHA
Refrescar imagen

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks:0

A continuación se enlazan los weblog de referencia
Usando los eventos de los dispositivos táctiles de Comunicación web. Posicionamiento SEO, accesibilidad web. Recursos HTML5 y ejemplos CSS3. Configurar servidor, tutoriales, how to, tecnología. Técnicas SEO y tecnología web. Programas, sistemas operativos.
  • Categorías
    • CSS3 (18)
    • CUDA (1)
    • Diseño (5)
    • Empresas (9)
    • Eventos (1)
    • Flash (3)
    • Herramientas (9)
    • Historia (7)
    • HTML5 (27)
    • Ipad (4)
    • JAVA (5)
    • JQuery (8)
    • leyes (3)
    • Nosotros (1)
    • Pensamientos (12)
    • PHP (9)
    • Protocolos (1)
    • Redes sociales (7)
    • SEO (12)
    • Servidores (14)
    • Sistemas Operativos (12)
      • Linux (10)
    • WordPress (25)
    • XML (2)
  • Archivos
    • febrero 2012 (1)
    • enero 2012 (4)
    • diciembre 2011 (16)
    • noviembre 2011 (11)
    • octubre 2011 (27)
    • septiembre 2011 (56)
    • agosto 2011 (42)
  • Sitios de interés
    • Diseño web santiago de compostela
    • La guerra de los mundos
    • Red de compra
    • Tesla Technologies (EN)
    • Tesla Technologies (ES)
  • Etiquetas
    Accesibilidad web animación buscadores citas colores como configurar CSS css3 Distros estructura web etiquetas Facebook flash Google How To html5 infografía ipad Iphone JAVA Javascript JQuery Linux mostrar número navegadores web Nginx ordenador pensamientos PHP plugins posicionamiento seleccionar SEO servidor ssh TTF Twitter usuarios vida W3C wordpress xhtml XML
  • Estadísticas
    • Total Stats
      • 4 Authors
      • 157 Posts
      • 252 Tags
      • 5 Links
      • 25 Post Categories
    • 10 Most Commented Posts
      • ¿Que es el seo? - 2 comments
      • El relativismo, parábola de los seis sabios ciegos y el elefante - 1 comment
      • ¿Que es el XML (Extensible Markup Language) ? - 1 comment
      • Mejorar el posicionamiento (plugins para WordPress) - 1 comment
      • HTML5: Estructura página web - 1 comment
      • Infografía con el uso de WordPress - 1 comment
      • Lorem ipsum: texto de relleno en webs de desarrollo - 1 comment
      • CSS3: Incrustar fuentes en la página web - 1 comment
  • Facebook
  • Twitter
    Follow @comunicacionw
  • Meta
    • Registrarse
    • Acceder
    • RSS de las entradas
    • RSS de los comentarios
    • WordPress.org
  • Portales web del grupo Tesla Technologies
    • Diseño web
    • Diseño web Santiago
    • Anuncios Gratis
    • Tiendas venta online
    • Diseño web
    • Comuniquemonos para avanzar
    • No es una guerra.. nunca lo ha sido
    •  
    •  
SUBIR

Comunicación web. Posicionamiento SEO, accesibilidad web. Recursos HTML5 y ejemplos CSS3. Configurar servidor, tutoriales, how to, tecnología. Técnicas SEO y tecnología web. Programas, sistemas operativos.
Con la tecnología de WordPress 3.2.1 y Tema Mflat