2012-08-28 31 views
6

Tôi đang sử dụng Bootstrap của Twitter cuối cùng. Tôi muốn thực hiện một hàm JS nào đó (hiển thị chú giải công cụ một lần) khi chiều rộng cửa sổ của tôi thấp hơn 980px (như bạn đã biết, kích thước này Bootstrap sửa đổi Navbar và ẩn các mục menu chuẩn) - cửa sổ từ 768 đến 979, ngắn gọn . Tôi biết rằngBootstrap: Thiết kế đáp ứng - thi hành JS khi cửa sổ được thay đổi kích thước từ 980px thành 979px

@media (min-width: 768px) and (max-width: 979px) {...} 

tùy chọn này có thể được sử dụng để bắt sự kiện. Tuy nhiên, nó chỉ có thể được sử dụng để thay đổi kiểu dáng thoát như

body {background-color:#ccc;} 

Và tôi cần khởi chạy chức năng JS, hoặc thêm hoặc xóa kiểu dáng cụ thể cho phần tử. Tôi đã thử:

<script> 
    window.onresize = function() { 
     if (window.outerWidth == 980) {alert('');} 
    }; 
</script> 

nhưng giải pháp này quá chậm và thậm chí treo cửa sổ trình duyệt. Vì vậy, có bất kỳ giải pháp để nắm bắt sự kiện này, khi cửa sổ được thay đổi kích cỡ để 979px từ bên GREATER và thực hiện một chức năng JS?

Nhờ tất cả!

+0

Tại sao sự là giải pháp chậm, không sự kiện này bị sa thải quá thường thì người xử lý của bạn cần bao lâu? Nếu vậy, bạn có thể thử một cái gì đó như ['debounce()'] của Underscore.js (http://underscorejs.org/#debounce) để chỉ thực thi trình xử lý khi cửa sổ được thay đổi kích thước. (Giả sử bạn không thực sự cần những thay đổi để được hoàn toàn trơn tru.) – millimoose

+0

tốt, trong thực tế nó thậm chí không làm việc cho tôi - Tôi couldnt nhận được một cảnh báo khi cửa sổ là 980. Và tôi cần phải nhận được cảnh báo ONLY trong trường hợp khi cửa sổ được thay đổi kích thước từ 980 đến 979. Không ngược lại :) – f1nn

+0

Bất kể câu hỏi nào, +1 để phát minh ra một từ mới có vẻ như nó sẽ tồn tại. – Stickley

Trả lời

5

outerWidth là một phương pháp, do đó bạn đang bỏ lỡ ():

if (window.outerWidth() == 980) 

Trong mọi trường hợp nếu bạn đang sử dụng jQuery:

$(window).resize(function() { 
    if ($(this).width() < 981) { 
    //do something 
    } 
}); 
+0

Chèn nội dung này vào trong cơ thể - không hoạt động. Nó sẽ chỉ cảnh báo một lần khi cửa sổ được thay đổi kích thước từ 980 đến 979 (không phải từ 978 đến 979 ot 979 đến 980). jQ được tải. – f1nn

+0

nhanh hơn nhiều khi không sử dụng các đối tượng jQuery khi có thể. bạn có thể sử dụng 'document.width' để tìm chiều rộng của tài liệu – MrOBrian

+0

Cũng cố gắng đưa mã của bạn vào document.ready - cùng một kết quả (( – f1nn

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