2014-04-13 4 views
5

Ich habe in jQuery einige ausgefallene Hover-Scrolling-Effekte geschrieben. Sie funktionieren hervorragend auf einem Desktop-Computer. Mein Problem ist, dass auf einem mobilen Gerät, weil der Benutzer auf den Bildschirm tippt, mein Code immer noch glaubt, dass der Benutzer auf meinem .scrollright div schwebt und weiter scrollt.Verhindern, dass jQuery mouseenter auf Touch-Geräten ausführt

Wie kann ich dies deaktivieren oder auf andere Weise einfach dieses Problem auf mobilen/Tablet-Geräten verhindern?

$('.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); 
    }); 

Antwort

8

Eine schnelle Überprüfung auf Berührung vielleicht?

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

wickeln Sie dann Ihren Code in den Zustand:

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); 
    }); 
} 

So etwas sowieso.

+0

Danke, Chris, das hat funktioniert (zumindest auf Android). Sollte diese Methode auch auf iOS und allen anderen wichtigen Touch-Geräten funktionieren? Ich habe hier nur Android-Geräte zum Testen. –

+1

Hallo Chris. Ja, sollte auf der ganzen Linie funktionieren. Zumindest wenn man nur mit mobilen Geräten umgeht. Dies kann tatsächlich klebrig werden, wenn Sie Geräte in Betracht ziehen, die Touch- und Mausereignisse berücksichtigen. 'if (window.PointerEvent) {// was zu tun ist, wenn ein Zeigerobjekt existiert}' – chrismauck

+1

Einfach überprüft, hat auch an iOs gearbeitet! – nickeyzzz

Verwandte Themen