Đối với tôi nhỏ là đẹp nên tôi đang sử dụng kỹ thuật này:
Trong tệp CSS:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
Trong tệp jQuery / JavaScript:
$( document ).ready(function() {
var is_mobile = false;
if( $('#some-element').css('display')=='none') {
is_mobile = true;
}
// now i can use is_mobile to run javascript conditionally
if (is_mobile == true) {
//Conditional script here
}
});
Mục tiêu của tôi là để trang web của tôi "thân thiện với thiết bị di động". Vì vậy, tôi sử dụng CSS Media Queries để hiển thị / ẩn các yếu tố tùy thuộc vào kích thước màn hình.
Ví dụ: trong phiên bản di động của tôi, tôi không muốn kích hoạt Hộp Like của Facebook, vì nó tải tất cả những hình ảnh và nội dung tiểu sử đó. Và điều đó không tốt cho khách truy cập di động. Vì vậy, ngoài việc ẩn phần tử container, tôi cũng thực hiện điều này bên trong khối mã jQuery (ở trên):
if(!is_mobile) {
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/pt_PT/all.js#xfbml=1&appId=210731252294735";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}
Bạn có thể thấy nó hoạt động tại http://lisboaautentica.com
Tôi vẫn đang làm việc trên phiên bản di động, vì vậy nó vẫn không giống như khi viết.
Cập nhật bởi dekin88
Có một API JavaScript được tích hợp để phát hiện phương tiện truyền thông. Thay vì sử dụng giải pháp trên, chỉ cần sử dụng các giải pháp sau:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Hỗ trợ trình duyệt: http://caniuse.com/#feat=matchmedia
Ưu điểm của phương pháp này là nó không chỉ đơn giản và ngắn hơn, mà bạn có thể nhắm mục tiêu một cách có điều kiện các thiết bị khác nhau như điện thoại thông minh và máy tính bảng nếu cần mà không cần phải thêm bất kỳ yếu tố giả nào vào DOM.