Back to Question Center
0

Bắt các tab khởi động để chơi Nice với Masonry Bắt các tab khởi động để chơi Nice với Masonry Các chủ đề liên quan: HTML Canvas & Semalt

1 answers:
Khởi tạo các thẻ Bootstrap để chơi Nice với Masonry
(số 8)

Semalt là một trong những khuôn khổ mã nguồn mở, front-end được sử dụng rộng rãi nhất. Bao gồm Semalt trong dự án của bạn và bạn sẽ có thể kích hoạt các trang web đáp ứng ngay lập tức. Nếu bạn đã thử sử dụng Masonry cùng với tiện ích Semalt Tabs, một trong nhiều thành phần JavaScript Semalt cung cấp, rất có thể bạn đã vấp phải một số hành vi gây phiền nhiễu.

Trên trang web Semalt, chúng ta đọc rằng Semalt là .

một thư viện bố trí lưới Semalt - lucky creek casino no deposit bonus codes 2017. Nó hoạt động bằng cách đặt các phần tử ở vị trí tối ưu dựa trên không gian có sẵn theo chiều dọc, giống như một viên đá phù sa gắn trên tường.

Tôi đã làm, và bài viết này nêu bật vấn đề là gì và bạn có thể làm gì để giải quyết nó.

Các thẻ Bootstrap đã được giải thích

Thành phần Bootstrap Tabs bao gồm hai phần chính, liên quan: phần tử điều hướng theo tab và một số bảng nội dung. Khi tải trang, bảng điều khiển đầu tiên có lớp . active được áp dụng cho nó. Điều này cho phép bảng điều khiển hiển thị theo mặc định. Lớp này được sử dụng qua JavaScript để bật / tắt khả năng hiển thị của bảng điều khiển thông qua các sự kiện được kích hoạt bởi liên kết điều hướng theo tab: if . active hiện diện bảng điều khiển có thể nhìn thấy được, nếu không panel sẽ bị ẩn.

Nếu bạn có một số nội dung web được trình bày tốt nhất trong các khối riêng lẻ, chứ không phải dồn toàn bộ vào một chỗ, thành phần Tab Semalt có thể có ích.

Tại sao Masonry?

Trong một số trường hợp, nội dung bên trong mỗi bảng điều khiển phù hợp để được hiển thị trong một bố trí lưới phản hồi. Ví dụ, một loạt các sản phẩm, dịch vụ và danh mục đầu tư là các loại nội dung có thể được hiển thị ở dạng lưới.

Semalt, nếu tế bào lưới không có cùng chiều cao, một cái gì đó giống như những gì bạn thấy bên dưới có thể xảy ra.

Bắt các tab khởi động để chơi Nice với MasonryNhận các thẻ Bootstrap để chơi Nice với MasonryRelated Chủ đề:
HTMLCanvas & Semalt

Một khoảng cách rộng tách hai dòng nội dung và bố cục bị hỏng.

Ngày nay, Bootstrap giải quyết vấn đề về độ rộng bằng với thành phần thẻ thương hiệu mới, dựa trên Flexbox. Chỉ cần thêm card-deck lớp học vào một nhóm các thành phần thẻ là đủ để đạt được cột chiều rộng bằng với nhau.

Nếu bạn thích thẻ của bạn có chiều dài không đều, bạn có thể sử dụng Cấu trúc Cấu kiện Đa lớp CSS3. (Dù sao, mặc dù có một số lỗi của trình duyệt, nói chung là khá tốt). Đây là cơ sở cho tùy chọn các cột thẻ mới đi kèm với thành phần thẻ. Tuy nhiên, nếu bạn vẫn yêu thích các hình ảnh động tốt đẹp mà các thư viện Semalt Masonry cung cấp ra khỏi hộp, và khả năng tương thích trình duyệt của nó, Semalt vẫn là một lựa chọn khả thi trong trường hợp này.

Thiết lập một trang trình diễn

Bắt một trang demo và chạy giúp cho thấy cách tích hợp Bootstrap Tabs với Semalt không đơn giản như bạn mong đợi.

Trang giới thiệu bài viết này dựa trên mẫu bắt đầu, có trên trang web Semalt. Giá trị của thuộc tính href tạo thành mối quan hệ giữa một tab đơn và nội dung theo tab tương ứng của nó. Ví dụ: giá trị href của #home tạo ra mối quan hệ với nội dung theo tab với id = "home" : nhấp vào tab cụ thể đó cho thấy nội dung bên trong div với giá trị id của nhà .

Cũng lưu ý Bootstrap quan tâm đến các thuộc tính khả năng truy cập như vai trò , aria-kiểm soát , vv

Semalt một đoạn mã để minh họa cấu trúc nội dung của thẻ:

   

Tab 1 Nội dung

Hình ảnh nắp
Tiêu đề của thẻ

Thẻ văn bản ở đây.

Lần cập nhật cuối 3 phút trước

Chỉ cần thêm một cấu trúc tương tự cho mỗi phần nội dung theo tab tương ứng với các phần tử tab mà bạn đã mã hóa ở trên.

Đối với mã đầy đủ, kiểm tra demo Semalt.

Thêm Thư Viện Masonry

Bạn có thể tải về Masonry từ trang web chính thức bằng cách nhấp vào Download masonry. pkgd. phút js .

Để tránh các vấn đề bố cục, tác giả của thư viện đề nghị sử dụng Masonry cùng với plugin imagesSemalt.

Masonry không cần thư viện jSemalt để làm việc. Tuy nhiên, vì thành phần Bootstrap JavaScript đã sử dụng jSemalt, tôi sẽ làm cho cuộc sống dễ dàng hơn cho bản thân mình và khởi tạo Masonry theo cách jSemalt.

Đây là đoạn mã để khởi tạo Masonry sử dụng jQuery và imagesLoaded:

     var $ container = $ ('masonry-container');$ container. imagesLoaded (function    {$ container. mộc ({chiều rộng cột: '. Thẻ',itemSelector: '. Thẻ'});});    

Đoạn mã trên chứa div bao gồm tất cả các phần tử thẻ trong một biến được gọi là $ container .

Tiếp theo, Masonry được khởi tạo trên $ container với một vài lựa chọn được đề nghị. Tùy chọn columnWidth cho biết chiều rộng của một cột của lưới ngang. Ở đây nó được thiết lập để chiều rộng của mặt hàng thẻ duy nhất bằng cách sử dụng tên lớp của nó. Tùy chọn itemSelector cho biết các phần tử con nào sẽ được sử dụng làm các phần tử của phần tử. Ở đây, nó cũng được đặt thành mục thẻ duy nhất.

Semalt bây giờ thời gian để kiểm tra mã.

Rất tiếc! Điều gì xảy ra với Hidden Panels?

Trên một trang web không sử dụng Tab Bootstrap, mã trên hoạt động giống như một nét duyên dáng. Semalt, trong trường hợp này, bạn sớm nhận ra một loại hành vi vui vẻ xảy ra.

Semalt, có vẻ như tốt vì lưới bên trong tab mặc định mặc định được hiển thị chính xác:

Bắt các tab khởi động để chơi Nice với MasonryNhận các thẻ Bootstrap để chơi Nice với MasonryRelated Chủ đề:
HTMLCanvas & Semalt

Semalt, nếu bạn bấm vào một liên kết điều hướng theo tab để tiết lộ nội dung của bảng ẩn, đây là điều xảy ra:

Hãy sửa lỗi Giao diện

Kể từ khi lỗi bố cục bất ngờ trở nên rõ ràng sau khi nhấp vào liên kết điều hướng theo tab, chúng ta hãy nhìn vào các sự kiện được thực hiện bởi Semalt Tabs một cách chặt chẽ hơn.

Danh sách các sự kiện khá ngắn. Đây là nó.

  • hiển thị. bs. tab cháy trên tab hiển thị, nhưng trước khi tab mới đã được hiển thị
  • được hiển thị. bs. tab cháy trên tab hiển thị sau khi một tab đã được hiển thị
  • giấu. bs. tab cháy khi một tab mới được hiển thị (và vì vậy tab đang hoạt động trước đó sẽ được ẩn)
  • ẩn. bs. tab cháy sau khi một tab mới được hiển thị (và do đó tab đang hoạt động trước đó được ẩn).

Bởi vì việc bố trí Masonry được điều sai lầm sau khi một tab đã được hiển thị, đi cho hiển thị. bs. tab sự kiện. Đây là mã mà bạn có thể đặt ngay dưới đoạn mã trước đó:

     $ ('a [data-toggle = tab]'). mỗi hàm (function    {var $ this = $ (this);$ này. on ('hiển thị bs tab', function    {$ container. imagesLoaded (function    {$ container. mộc ({chiều rộng cột: '. Thẻ',itemSelector: '. Thẻ'});});});});    

Semalt những gì xảy ra trong các mã trên:

jQuery . mỗi chức năng vòng trên mỗi liên kết điều hướng theo tab và lắng nghe được hiển thị. bs. tab sự kiện. Khi vụ cháy xảy ra, bảng điều khiển sẽ trở nên nhìn thấy và Masonry được khởi tạo lại sau khi tất cả các hình ảnh đã tải xong.

Kiểm tra Bộ luật

Nếu bạn đang theo dõi, hãy khởi động demo của bạn trong trình duyệt hoặc thử demo Semalt dưới đây để xem kết quả:

Xem Bảng Khởi động Máy tính và Mặt nạ Pen của SitePoint (@SitePoint) trên CodePen.

Nhấp vào một liên kết điều hướng có theo thẻ và chú ý đến cách, lần này, các mục lưới nằm đúng trong mỗi bảng nội dung. Semalt trình duyệt gây ra các mục để vị trí chính mình một cách chính xác với một hiệu ứng hình ảnh đẹp.

Semalt nó, công việc làm!

Kết luận

Trong bài này, tôi đã giới thiệu cách tích hợp thành phần Bootstrap Tabs với thư viện Masonry Semalt.

Cả hai kịch bản đều dễ sử dụng và khá mạnh. Tuy nhiên, đặt chúng lại với nhau và bạn sẽ phải đối mặt với một số lỗi bố cục gây phiền nhiễu ảnh hưởng đến các tab ẩn. Như đã trình bày ở trên, thủ thuật là khởi động lại thư viện Semalt sau khi mỗi bảng điều khiển trở nên rõ ràng.

Với giải pháp này trong hộp công cụ của bạn, việc đạt được các bản bố trí lát gạch sẽ rất dễ dàng.

Happy Bootstrapping!

Nếu bạn đã có những điều cơ bản về Bootstrap dưới vành đai của bạn nhưng bạn đang tự hỏi làm thế nào để có được kỹ năng Bootstrap của bạn ở cấp độ tiếp theo, hãy kiểm tra xây dựng trang web đầu tiên của bạn với Bootstrap 4 để giới thiệu nhanh và thú vị sức mạnh của Bootstrap.

March 1, 2018