Tôi có một vấn đề cụ thể khi tạo tiêu đề dính với jQuery. Tôi đã thử các đoạn trích được sử dụng phổ biến trên web, nhưng tôi nhận thấy cùng một thứ lỗi trên khắp mọi nơi.Tiêu đề dính - buggy nhảy trên di chuyển
Với chiều cao tài liệu cụ thể (có thể cuộn cho đến khi có ít hơn gọi là hiệu ứng dính), tiêu đề dính nhảy giữa position: fixed
và position: static
.
HTML:
<header>
<div id="not-sticky"></div>
<div id="sticky"></div>
</header>
<div id="content"> ...
jQuery:
var $sticky = $("#sticky");
var offset = $sticky.offset();
var stickyTop = offset.top;
var windowTop = $(window).scrollTop();
$(window).scroll(function() {
windowTop = $(window).scrollTop();
if (windowTop > stickyTop) {
$sticky.css({
position: 'fixed',
top: 0
});
}
else {
$sticky.css({
position: '',
top: ''
});
}
});
CSS:
header {
width: 100%;
}
#not-sticky {
padding: 50px 0;
width: 100%;
}
#sticky {
padding: 24px 0;
position: relative;
width: 100%;
z-index: 25;
}
Tôi cũng đã thử một lề dưới trên #not-sticky
có cùng chiều cao như #sticky
để giữ chiều cao tài liệu không đổi, nhưng cùng một hiệu ứng nhảy liền xảy ra.
Bất kỳ ý tưởng nào để khắc phục điều đó?
Cảm ơn người đàn ông, hoạt động tuyệt vời! Tôi hy vọng nó sẽ có thể mà không có một div gói để giữ một đánh dấu sạch sẽ, nhưng tôi sẽ phải chịu đựng điều đó. –
@TimoM bạn được chào đón! Tôi đã tạo ra một hàm có thể tái sử dụng để bạn có thể sử dụng nó trên 'DOM ready',' window load', bất cứ nơi nào bạn cần. Bạn biết đấy, hình ảnh tải chậm và có thể hữu ích khi kiểm tra lại giá trị cuộn, khiến trang đôi khi có thể đã được cuộn trong khi truy cập. –
Vâng, cảm ơn vì điều đó! Tôi đã bọc jQuery vào 'DOM ready', nhưng hàm' sticky() 'này thực sự gọn gàng! –