2011-05-13 2 views
11

J'essaie de créer une case à cocher coulissante comme celle sur l'iphone.javascript finger slide detection

J'ai commencé avec ce script:

$('input[type=checkbox]').live('touchstart', function (e) { 
      down_x = e.originalEvent.touches[0].pageX; 
      $('input[type=checkbox]').live('touchmove', function (e) {up_x = e.originalEvent.touches[0].pageX; 
      if ((down_x - up_x) > 1) {$(this).change()}}); 
      }); 

Mais il ne semble pas fonctionner. Une idée sur la façon de mettre en œuvre cela?

Répondre

16

c'était un petit problème amusant

Je l'ai fonctionne très bien, cela fonctionne même avec une souris :)

Je l'ai testé sur mon Ipad et Iphone et il est assez cool.

ne prendrait pas beaucoup de travail pour retourner cela dans un plugin, mais cela devrait fonctionner très bien pour vous

l'astuce de travailler avec ios événements mobiles est ces trois événements

$('.toggle_box').bind('touchstart',touch_start); 
$('.toggle_box').bind('touchmove',touch_move); 
$('.toggle_box').bind('touchend',slide_end); 

http://jsfiddle.net/samccone/ZMkkd/

+0

Mec, vous, êtes, génial: D – cmplieger

+0

ha pas de problème, ce fut très amusant en fait, je pense que je vais écrire un gros billet de blog à ce sujet, mais heureux que vous l'avez aimé – samccone

+1

J'ai cassé ce script en 2 secondes tout en sur l'ordinateur avec une souris. Je pense que vous avez besoin d'un retour faux ou arrêter la propagation quelque part ... Je cliquetais comme un fou et il s'est coincé dans la position "verte" et ne fonctionnait plus. – Alex