2014-04-13 11 views
5

Tôi đã viết một số hiệu ứng cuộn chuột ưa thích trong jQuery. Chúng hoạt động tốt trên máy tính để bàn. Vấn đề của tôi là trên thiết bị di động, bởi vì người dùng chạm vào màn hình, mã của tôi vẫn tin rằng người dùng đang lơ lửng trên div .scrollright của tôi và tiếp tục cuộn.Ngăn jQuery chạy trình điều khiển chuột trên thiết bị cảm ứng

Tôi làm cách nào để tắt tính năng này, hoặc nói cách khác là ngăn sự cố này, trên thiết bị di động/máy tính bảng?

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

Trả lời

8

Kiểm tra nhanh có thể chạm?

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

Sau đó quấn mã của bạn trong điều kiện:

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

Something như thế anyways.

+0

Cảm ơn, Chris, đã hoạt động (ít nhất là trên Android). Phương pháp này có nên hoạt động trên iOS và tất cả các thiết bị cảm ứng chính khác không? Tôi chỉ có các thiết bị Android ở đây để kiểm tra. –

+1

Xin chào Chris. Đúng, nên làm việc trên bảng. Ít nhất là khi chỉ giao dịch với các thiết bị di động. Điều này thực sự có thể trở nên dính khi bạn xem xét các thiết bị tôn vinh sự kiện chạm và chuột. 'if (window.PointerEvent) {// điều cần làm nếu đối tượng con trỏ tồn tại}' – chrismauck

+1

Chỉ cần kiểm tra, đã làm việc trên iOs! – nickeyzzz

Các vấn đề liên quan