tôi k bây giờ bài viết này là một chút cũ, nhưng vẫn rất hữu ích .. tôi chỉ muốn thêm một phiên bản jquery (một chút sạch hơn và cấu hình), nhưng đó là một phiên bản sửa đổi của câu trả lời Andrew D.
Trong trường hợp này tôi không có hai lớp, thay vào đó tôi có một vị trí tương đối div và khi tôi đạt đến một điểm nhất định (max_scroll) i thêm một lớp vào đối tượng, và lớp đó là cái làm cho nó nổi
Dưới đây là javascript (tất cả các chức năng thực hiện bên trong de tài liệu sẵn sàng)
<script type="text/javascript">
var max_scroll = 400; // this is the scroll position to start positioning the nav in a fixed way
$(document).ready(function(){
$(window).scroll(function() {
var navbar = $(".filterbutton");
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop > max_scroll && !navbar.is(".filterbuttonFixed")) {
navbar.addClass("filterbuttonFixed");
// console.log("go floated");
}
else if(scrollTop < max_scroll && navbar.is(".filterbuttonFixed")) {
// console.log("return to normal");
navbar.removeClass("filterbuttonFixed");
}
}
});
</script>
và đây là nav-bar của tôi chứa div
<div id="floatable-nav-bar" class="my-relative-position-class">
<nav class="page-menu">
<ul class="scroll-nav">
<li><a class="selected" href="#first">Section 1</a></li>
<li><a class="" href="#second">Section 2</a></li>
<li><a class="" href="#third">Section 3</a></li>
<li><a class="" href="#fourth">Section 4</a></li>
</ul>
</nav>
</div>
và cuối cùng nhưng không kém, tôi nav-lơ lửng phong cách
#floatable-nav-bar.nav_floated {
position:fixed;
top:1px;
left: 0;
width:100%;
text-align: center;
background: #EEE;
padding: 5px 0;
}
Tôi biết đây không phải là ví dụ đơn giản, nhưng đối với người sử dụng jQuery có lẽ đây là một phương pháp đơn giản hơn, và tôi nghĩ rằng nó tốt hơn để chỉ cần thêm và loại bỏ một lớp (ít nhất là nó đã được cho tôi).
Giải pháp này nhấp nháy khủng khiếp trong mọi trình duyệt. Hầu hết các trình duyệt hiện đại đều hỗ trợ 'vị trí: cố định', đó là cách CSS thực hiện. – sohtimsso1970
Có, tôi không sử dụng giải pháp này nữa. Điều đó dựa trên kiến thức hạn chế của tôi về việc thiết lập vị trí cố định vào thời điểm đó. Các giải pháp sử dụng vị trí: cố định tốt hơn. –