Để sticky một element nào đó thì có nhiều plugin jquery làm việc này, nhưng anh chị không thích phải include thư viện plugin jquery thì tham khảo cách làm của tôi dưới đây nhé:
1.Mã jquery
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<script> jQuery(function($){ $(window).scroll(function(){ //phần tử trên nó .d-contact var element_above=$('.d-contact'); //Phần tử mà anh chị muốn kết thúc sticky, thường là chân trang footer var element_footer=$('.bottom'); //phần tử chứa nội dung, nếu chưa có nội dung hoặc nội dung chưa đủ nhiều thì sẽ không sticky var check_height = $('.check_height').height(); var width=element_above.width(); var startPoint = element_above.offset().top + element_above.height() + 50; var endPoint=element_footer.height(); var element_sticky = $('.item.support-book-tour'); //Chỉ thực hiện ở desktop if( $(window).width() > 768){ if(check_height > startPoint){ if($(this).scrollTop()>=startPoint){ element_sticky.addClass('last_posts_sticky'); element_sticky.attr("style","width:"+width+"px"); } if($(this).scrollTop() < startPoint){ element_sticky.removeClass('last_posts_sticky'); } if ((window.innerHeight + window.scrollY + endPoint ) >= document.body.scrollHeight) { element_sticky.removeClass('last_posts_sticky'); } } } }); }); </script> |
2.Mã css
1 2 3 4 5 |
.last_posts_sticky{ position: fixed; z-index: 999999999; top: 93px; } |
Anh chị chỉnh startPoint, endPoint và top trong mã css phù hợp với hoàn cảnh của anh chị nhé
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress