Bài 4: Tạo hiệu ứng collapse và accordion bằng jquery

0 895

Trong bài học này, mình sẽ hướng dẫn cách tạo hiệu ứng collapse và accordion bằng jquery. Ý tưởng chính của hiệu ứng này là cách khối chỉ hiện tiêu đề. Khi click vào tiêu đề sẽ xuất hiện khối nội dung, click lần thứ hai sẽ ẩn nội dung. Ngoài ra, chỉnh sửa để hiệu ứng mượt mà và có trải nghiệm người dùng tốt hơn.

Video – Tạo hiệu ứng collapse và accordion bằng jquery

Ý tưởng

+ Chỉ hiện tiêu đề

+ Click vào tiêu đề sẽ hiện nội dung

+ Click lần nữa sẽ ẩn nội dung.

+ Ngoài ra, mình sẽ hướng dẫn cách tự động cuộn trang để đưa nội dung vừa đổ xuống về giữa màn hình.

+ So sánh với collapse trong Bootstrap

+ Kiến thức mới: hàm slideUp, hàm slideDown, hàm slideToggle, hàm offset, hiệu ứng scrolTop,

Demo tạo hiệu ứng collapse và accordion bằng jquery
Demo tạo hiệu ứng collapse và accordion bằng jquery

Phần HTML

Có làm thì mới có ăn như ai đó từng nói - Vài dòng ngắn cho QUẢNG CÁO nhé

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn đăng ký và sử dụng hosting từ link trên, Góc Làm Web sẽ có một ít tiền để duy trì. 

Căn chỉnh tùy theo bạn nhé. Đối với các khối chứa nội dung

<div class="main">
   <div class="jquery-accordion">
      <div class="khoi">
         <h3>Collapse 1</h3>
         <div class="noi-dung">Nội dung của bạn</div>
      </div>
      <div class="khoi">
         <h3>Collapse 2</h3>
         <div class="noi-dung">Nội dung của bạn</div>
      </div>
   </div>
</div>

div.jquery-accordion để bao bọc toàn bộ các phần nội dung của chúng ta.

Phần CSS

Nhớ reset css trước nhé.

*{
   margin:0;
   padding: 0;
}
.main{
   width: 100%;
   background-color: white;
   margin-top: 20px;
}
.jquery-accordion{
   width: 40%;
   margin: auto;
}
.khoi h3{
   background: #f5f5f5;
   padding: 10px 12px;
   color: #212121;
   border-radius: 1px;
   text-align: center;
   box-shadow: 1px 2px 2px rgb(0,0,0,0.23);
}
.noi-dung {
   padding: 10px 12px;
   border: 1px #212121 solid;
}

Phần JS – jquery

$(document).ready(function() {
   $('.noi-dung').slideUp(); /*ẩn nội dung*/

   $('.khoi h3').on('click', function(event) {
      // ngăn chặn mặc định
      event.preventDefault();
      // đóng/ mở
      $(this).next().slideToggle();

      // $(this).offset().top lấy vị trí của phần tử this

      $('html, body').animate({scrollTop:$(this).offset().top},400);
   });

// quay về đầu trang
   $('#btn-top').click(function(event) {
      /* Act on the event */
      $('html, body').animate({scrollTop:0},400);
   });
});

Kiến thức mới trong phần jquery:

+ hàm slideUp()/slideDown(): Hiện/ Ẩn nội dung.

+ Hàm slideToggle(): Hiện/ẩn nội dung, hàm gộp của slideUp và sldieDown

+ Hàm offset(): lấy vị trí của phần tử

+ Hiệu ứng cuộn trang

Phần Collapse và accordion Bootstrap mình chỉ nói nhanh ở cuối video. Chi tiết về nội dung này, các bạn có thể xem bài collapse trong khóa học Bootstrap.

Code mẫu: Download

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ

Bạn cũng có thể thích
Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố.