2012-06-18 37 views
8

Dường như có nhiều câu hỏi/câu trả lời về cách thay đổi trình đơn thả xuống của Twitter Bootstrap xuất hiện trên một nhấp chuột để xuất hiện trên di chuột. Các nhà xây dựng của Bootstrap có lý do chính đáng để sử dụng nhấp chuột thay vì di chuột - không hoạt động trên hầu hết các máy tính bảng & điện thoại. Tuy nhiên, một trong những lý do tại sao tôi đang sử dụng Bootstrap là cho các tính năng đáp ứng của nó. Tôi muốn một trang web có thể xem được trên máy tính để bàn, máy tính bảng và điện thoại. Mặc dù cách nhấp để tải xuống là cần thiết cho máy tính bảng và điện thoại, nhưng đó không phải là hành vi mong đợi đối với máy tính để bàn. Tôi muốn trang web của mình đáp ứng, nhưng không phải trả chi phí phải đào tạo lại người dùng!Twitter Bootstrap: Menu thả xuống Di chuột cho Máy tính để bàn, Nhấp vào Máy tính bảng/Điện thoại?

Có cách nào để phân phối trình đơn thả xuống di chuột cho máy tính để bàn và nhấp vào menu thả xuống cho máy tính bảng và điện thoại không?

Trả lời

2

Bạn có thể với "lớp tiện ích Đáp ứng"

http://twitter.github.com/bootstrap/scaffolding.html ở dưới cùng của trang

+1

Trên thực tế, bằng cách sử dụng các lớp tiện ích đáp ứng, có vẻ như tôi sẽ phải có hai phiên bản riêng biệt của trình đơn của tôi. Một cái sẽ hiển thị cho điện thoại/máy tính bảng và một cái sẽ hiển thị cho máy tính để bàn. Lý tưởng nhất, tôi chỉ muốn có một thực đơn. –

+0

@TonyaAbna bạn có thể làm điều đó http://jsfiddle.net/baptme/gRVUq/1/ nhưng bạn sẽ cần một số jQuery để đóng menu thả xuống vào lần nhấp thứ hai. – baptme

+0

baptme, tôi không chắc tôi hiểu câu trả lời của bạn. Tôi thấy cách bạn thực hiện công việc thả xuống khi di chuột thay vì nhấp chuột, nhưng tôi đang tìm một giải pháp có thể di chuột cho máy tính để bàn và nhấp cho điện thoại/máy tính bảng. Tôi có thiếu gì đó trong bản demo của bạn không? Chức năng nhấp rỗng có tác dụng gì? –

4

Tôi tạo ra một plugin (làm việc trên một vài cải tiến, nhưng nó chắc chắn hoạt động như là) cho phép đơn thả xuống để làm việc khi di chuột, nhưng nó không can thiệp vào sự kiện click của Twitter Bootstrap, vì vậy bạn có thể liên kết an toàn cả hai, về cơ bản có nghĩa là nếu có chuột, nó sẽ kích hoạt khi di chuột, nhưng nếu không có chuột (tức là màn hình cảm ứng trên máy tính bảng), nó sẽ vẫn kích hoạt khi được nhấp.

Tôi có plugin lưu trữ trên GitHub: https://github.com/CWSpear/twitter-bootstrap-hover-dropdown

Nó hoạt động bằng cách gọi nó một cách rõ ràng, nhưng tôi sẽ tinh chỉnh mã để làm việc với dữ liệu thuộc tính trong tương lai gần.

+1

CWSpear: Plugin của bạn hoạt động awesomely và siêu dễ dàng để cài đặt/sử dụng. Thực sự đánh giá cao việc bạn chia sẻ nó. Cảm ơn! ~ Susan – susan

+0

nó rất tuyệt ..và dễ dàng @CWSpear –

1

Tôi đã tìm kiếm chính xác điều này. Và tôi đã tìm ra giải pháp tốt hơn (tôi nghĩ). Chúng tôi có thể dễ dàng thực hiện việc này bằng cách sử dụng thư viện tuyệt vời Modernizr.js. Chúng tôi có thể phát hiện thiết bị màn hình cảm ứng theo chức năng dưới đây.

function is_touch_device() { 
    return !!('ontouchstart' in window); 
} 

Và sau đó chúng ta có thể vô hiệu hóa các URL trong các siêu liên kết tự động thông qua Javascript bằng cách thay đổi vị trí để "#" hoặc bằng cách ngăn chặn hành động mặc định của các mục trong menu cha mẹ. Mã cuối cùng sẽ như sau.

Để biết thêm chi tiết, bạn có thể thấy this link Tôi tin rằng ai đó sẽ bỏ phiếu cho tôi UP :-)

Cảm ơn

+0

Giải pháp của bạn dường như không liên quan gì đến thư viện Modernizr.js ... có vẻ như nó cũng hoạt động gần như nguyên gốc với jQuery. (chỉnh sửa: typo trong tên thư viện) –

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