J'aimerais détecter si un utilisateur a tapé deux fois sur un ipad ou un iphone.
Existe-t-il un événement javascript qui fournirait cette fonctionnalité ?
J'aimerais détecter si un utilisateur a tapé deux fois sur un ipad ou un iphone.
Existe-t-il un événement javascript qui fournirait cette fonctionnalité ?
Cela peut être utilisé pour un double tap ou un double clic. En javascript pur :
var mylatesttap;
function doubletap() {
var now = new Date().getTime();
var timesince = now - mylatesttap;
if((timesince < 600) && (timesince > 0)){
// double tap
}else{
// too much time to be a doubletap
}
mylatesttap = new Date().getTime();
}
J'ai créé celui-ci en JavaScript et il semble bien fonctionner. (Je l'ai testé sur mon iPad 2.) C'est essentiellement le code pour ce qui est dit ci-dessus.
var clickTimer = null;
function touchStart() {
if (clickTimer == null) {
clickTimer = setTimeout(function () {
clickTimer = null;
alert("single");
}, 500)
} else {
clearTimeout(clickTimer);
clickTimer = null;
alert("double");
}
}
J'ai trouvé cette solution sur Stackoverflow quelque part mais j'ai oublié quel message exact. Cela fonctionne pour un double-clic sur un navigateur et un double-clic sur iPhone.
J'utilise 'touchend click'
pour détecter le double clic sur le navigateur et l'iPhone. Pour implémenter uniquement sur iPhone, supprimez le clic.
var timeout;
var lastTap = 0;
$('element').on('touchend click',function(e){
var currentTime = new Date().getTime();
var tapLength = currentTime - lastTap;
e.preventDefault();
clearTimeout(timeout);
if(tapLength < 500 && tapLength > 0){
//Double Tap/Click
}else{
//Single Tap/Click
timeout = setTimeout(function(){
//Single Tap/Click code here
clearTimeout(timeout);
}, 500);
}
lastTap = currentTime;
});
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.