2014-04-13 13 views
5

jQuery'de bazı hover kaydırma efektleri yazdım. Masaüstü bilgisayarda harika çalışıyorlar. Sorun şu ki, bir mobil cihazda, kullanıcı ekrana dokunduğundan, kodum hala kullanıcının benim .scrollright div'ma geldiğine ve kaydırmaya devam ettiğine inanıyor.jQuery'nin dokunmatik cihazlarda fare merkezini çalıştırmasını önleme

Bu sorunu nasıl devre dışı bırakabilirim ya da yalnızca bu sorunu önlemek için mobil/tablet cihazlarda nasıl yapabilirim?

$('.thumbnails .scrollright').on('mouseenter', function() { 
    this.iid = setInterval(function() { 
     var CurrentScrollLeft = $(".thumbnails .thumbnailphotos").scrollLeft(); 
     $(".thumbnails .thumbnailphotos").scrollLeft(CurrentScrollLeft+10);   
    }, 50); 
    }).on('mouseleave', function(){ 
     this.iid && clearInterval(this.iid); 
    }); 

cevap

8

Dokunmak için hızlı bir kontrol belki?

var tap = ("ontouchstart" in document.documentElement); 

Ardından durumda kodunuzu sarın: neyse böyle

if(!tap){ 
    $('.thumbnails .scrollright').on('mouseenter', function() { 
     this.iid = setInterval(function() { 
      var CurrentScrollLeft = $(".thumbnails .thumbnailphotos").scrollLeft(); 
      $(".thumbnails .thumbnailphotos").scrollLeft(CurrentScrollLeft+10);   
     }, 50); 
    }).on('mouseleave', function(){ 
     this.iid && clearInterval(this.iid); 
    }); 
} 

şey.

+0

Teşekkürler, Chris, (en azından Android'de) çalıştı. Bu yöntem iOS ve diğer tüm büyük dokunmatik cihazlarda da çalışır mı? Test etmek için sadece Android cihazım var. –

+1

Hey Chris. Evet, tahtada çalışmalı. En azından mobil cihazlarla uğraşırken. Dokunma ve fare olaylarını onurlandıran cihazları düşündüğünüzde bu, aslında yapışkan olabilir. 'if (window.PointerEvent) {// işaretçi nesnesi varsa yapılacaklar}' – chrismauck

+1

Sadece kontrol edildi, iOs üzerinde çalıştı! – nickeyzzz