Khi Kevin chỉ ra, điều bạn cần làm là nghe sự kiện scroll
của tài liệu. Khi điều đó được kích hoạt, bạn sẽ muốn xem xét giá trị của scrollTop
.
$(document).scroll(function() {
var useFixedSidebar = $(document).scrollTop() >= myThresholdValue;
$('.my-sidebar-items').toggleClass('fixed', useFixedSidebar);
});
Và CSS của bạn về cơ bản sẽ trông như thế này:
.my-sidebar-items.fixedSidebar { position: fixed; }
Một yếu tố phức tạp là có thể bạn sẽ muốn các mục cần được cố định ở mới, vị trí hàng đầu của họ, và bạn sẽ muốn làm một cái gì đó như thế này:
.my-sidebar-items.fixedSidebar { position: fixed; top: 0 }
Tuy nhiên, điều đó có thể sẽ chồng các mục của bạn lên nhau. Một giải pháp cho điều đó là đặt lớp fixedSidebar
vào vùng chứa và sử dụng lớp như được mô tả.
Demo
Nguồn
2011-12-22 18:44:35
Cách đơn giản nhất là để lắng nghe sự kiện cuộn tag cơ thể, sau đó khi scrollTop được qua một số tiền nhất định, thêm một lớp học để các quảng cáo làm cho vị trí của nó được cố định, sau đó loại bỏ các lớp khi scrollTop được trở lại thấp hơn số tiền đó. Tôi không có mã để đăng dưới dạng mẫu nên tôi sẽ không đăng nó làm câu trả lời. –
@KevinB thnx, nhưng tôi không tốt với mã, vì vậy tôi sẽ prefare một mã, nhưng thnx cho một logic! – Ilja