Tạo Menu cố định khi cuộn trang với Javascript đơn giản
Menu cố định khi cuộn trang hay còn gọi là Floating menu giúp website của bạn chuyên nghiệp và đẹp mắt hơn. Trong bài viết này Vnkings sẽ giúp các bạn tự tạo cho mình 1 menu cố định như thế.
– Đầu tiên bạn cần xác định Class hay ID đang chứa menu:
Với Trang Vnkings của mình, class của Menu cần cố định chính là : head_nav
– Tiếp đến bạn thêm đoạn Javascript này vào bất kỳ đâu trong cặp thẻ body :
<script type="text/javascript"> jQuery(document).ready(function($) { var $filter = $('.head_nav'); var $filterSpacer = $('<div />', { "class": "vnkings-spacer", "height": $filter.outerHeight() }); if ($filter.size()) { $(window).scroll(function () { if (!$filter.hasClass('fix') && $(window).scrollTop() > $filter.offset().top) { $filter.before($filterSpacer); $filter.addClass("fix"); } else if ($filter.hasClass('fix') && $(window).scrollTop() < $filterSpacer.offset().top) { $filter.removeClass("fix"); $filterSpacer.remove(); } }); } }); </script>
- Lưu ý đoạn này : var $filter = $(‘.head_nav‘); Các bạn thay bằng Class tìm được ở bên trên nhé.
- mục đích của đoạn Javascript là khi bạn Cuộn chuột đến thẻ có class .head_nav thì nó sẽ thêm 1 Class nữa có tên là Fix
Lúc này hãy thử kiểm tra code khi cuộn trang đã thêm Class Fix
– Tiếp theo bạn cần CSS cho class Fix này giúp Menu luôn ở vị trí đầu của trang :
.head_nav.fix { left: 0; max-width: 100%; overflow: visible; position: fixed !important; top: 0; width: 100%; z-index: 1000; }
Bây giờ các bạn ra trang web của mình và F5 thử xem thành công chưa nhé
Demo https://wordpress.vnkings.com
Hoặc tải ví dụ đơn giản của Vnkings : Tải về
Chúc các bạn thành công!
Chào bạn!. mình đã làm theo cách như bạn chia sẻ nhưng không hiểu tại sao nó không được bạn có thể xem giúp mình được không. Mình cám ơn web của mình đây: http://vietnamarch.com.vn/
Đã teamview ok rồi bạn nhé
bạn có thể TV cho mình lỗi dc k, m làm i sì k dc 🙁
ok bạn inbox vào Fanpage https://www.facebook.com/vnkings/ nhé
Chào bạn, mình làm như cách của bạn nhưng vẫn không được, nhờ bạn hỗ trợ tý được không
thanks
Chào bạn, bạn có thể chat trực tiếp với mình qua nick skype: vn.starter@gmail.com nhé.
Chào bạn !
Cảm ơn bạn đã huong dẫn nhưng mình làm khong dc, ban xem giúp minh duoc khong
https://namnguyenbloger.wordpress.com/ Cảm ơn bạn nhé
Cảm ơn top, mình đã thành công
bạn có thể temview chỉ mình dc ko ạ
menu trái muốn scroll
Chào ad, em làm nhưng không được. Em không hiểu đoạn này ý nghĩa là gì vậy ạ?
[code]
var $filterSpacer = $('', {
"class": "vnkings-spacer",
"height": $filter.outerHeight()
});
if ($filter.size())
[code]
Chào, mình làm theo thì không vấn đề gì, chạy mượt lắm, nhưng có 2 phát triển nhỏ mong bạn hướng dẫn:
1. thêm chức năng chỉ cho cuộn xuống thì FIX, nhưng cuộn lên thì không Fix menu nữa (chỉ cho 1 chiều)
2. thêm các thành phần khác (Home / Swith / ..) mà không phải mặc định của menu, thì phải làm sao?
mong giúp – cám ơn bạn nhé !