2014-12-18 19 views
5

Tôi có một trang web có hiệu ứng cuộn thị sai và nó đang chạy tập lệnh skrollr.js. Đó là trang web đầu tiên trên thiết bị di động, nhưng tôi muốn tập lệnh không chạy trên thiết bị di động vì nó sẽ không cho phép cuộn. Có ai biết làm thế nào tôi có thể ngăn chặn các tập lệnh chạy khi trên một thiết bị di động? Cảm ơn.Làm thế nào để vô hiệu hóa một tập lệnh khi trên thiết bị di động

Mã nơi tập lệnh được tải lên ở cuối phần nội dung. Nếu cần bất kỳ mã nào khác, hãy cho tôi biết.

<!-- SCRIPTS --> 

<script type="text/javascript" src="js/skrollr.js"></script> 
<script type="text/javascript"> 
    skrollr.init(); 
</script> 

<!--/ SCRIPTS --> 
+1

bạn có sử dụng một số thư viện phát hiện, như 'modernizr'? – melancia

+1

có thể thực hiện một số truy vấn phương tiện css trên một vùng chứa nhất định. – fefe

+0

@fefe Bạn sẽ thao tác các tập lệnh qua CSS như thế nào? – melancia

Trả lời

6

Bạn có thể sử dụng modernizr 's phát hiện cảm ứng để kiểm tra xem nó là một thiết bị cảm ứng, và, nếu có, không init script.

if (Modernizr.touch) { 

} 
else 
{ 
    skrollr.init(); 
} 

hoặc bạn có thể kiểm tra các đại lý người dùng (điều này có thể không được lựa chọn tốt nhất của bạn như là tác nhân người dùng không phải lúc nào cũng đáng tin cậy), và viết một đơn giản nếu người nào khác, với init skrollr trong khác

var isMobile = { 
      Android: function() { 
       return navigator.userAgent.match(/Android/i); 
      }, 
      BlackBerry: function() { 
       return navigator.userAgent.match(/BlackBerry/i); 
      }, 
      iOS: function() { 
       return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
      }, 
      Opera: function() { 
       return navigator.userAgent.match(/Opera Mini/i); 
      }, 
      Windows: function() { 
       return navigator.userAgent.match(/IEMobile/i); 
      }, 
      any: function() { 
       return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); 
      } 
     }; 

     if (isMobile.any()) { 

     } 
     else { 

      skrollr.init(); 
     } 

một cách khác để thử nghiệm sẽ là bằng cách kiểm tra window.innerWidth và chỉ init script của bạn nếu kích thước màn hình lớn hơn 760px:

if (window.innerWidth > 760) { 
skrollr.init(); 
} 
+1

Đừng cho rằng "thiết bị cảm ứng" bằng "màn hình nhỏ". – Blazemonger

+0

@Blazemonger đúng, không có hiệu ứng mong muốn trên thiết bị này. Có một giải pháp tốt hơn bạn có thể nghĩ đến? – baao

+0

"Thiết bị di động" với tôi có nghĩa là "màn hình nhỏ", có kích thước nhỏ hơn khoảng 760px. Thay vào đó hãy thử 'window.innerWidth'. – Blazemonger

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