0
我們使用一些jQuery來使頁面上的某個點變得粘滯,併爲頁面上的段添加活動類。 目前該類是從給定的高度添加到頂部(645)。 但我想在用戶滾動給定元素時添加該類,以便我們不需要添加給定高度。這是因爲每個頁面的高度都是可變的。jQuery在滾動元素時在滾動時添加類
如何通過添加此jQuery代碼來解決此問題?
代碼:
<script>
$j(window).scroll(function(){
var sticky = $j('.menu-header-product'),
scroll = $j(window).scrollTop();
var elementOffset=jQuery("#productnav").offset();
if (scroll >= elementOffset.top - 57) sticky.addClass('sticky');
else sticky.removeClass('sticky');
});
$j(window).scroll(function(){
var sticky = $j('.content'),
scroll = $j(window).scrollTop();
var elementOffset=jQuery("#productnav").offset();
if (scroll >= elementOffset.top - 57) sticky.addClass('sticky');
else sticky.removeClass('sticky');
});
$j(document).ready(function() {
$j(document).on("scroll", onScroll);
$j('a[href^="#"]').on('click', function (e) {
e.preventDefault();
$j(document).off("scroll");
$j('a').each(function() {
$j(this).removeClass('active');
})
$j(this).addClass('active');
var target = this.hash;
$jtarget = $j(target);
$j('html, body').stop().animate({
'scrollTop': $jtarget.offset().top - 120 /**just subtract the height of the fixed html part */
}, 500, 'swing', function() {
window.location.hash = target;
$j(document).on("scroll", onScroll);
});
});
});
function onScroll(event){
var scrollPosition = $j(document).scrollTop();
$j('nav a').each(function() {
var currentLink = $j(this);
var refElement = $j(currentLink.attr("href"));
if (refElement.position().top - 125 <= scrollPosition && refElement.position().top - 125 + refElement.height() > scrollPosition) {
$j('nav ul li a').removeClass("active");
currentLink.addClass("active");
}
else{
currentLink.removeClass("active");
}
});
}
</script>
太棒了! :)但我們已經有一個高度爲57px的標題。那麼我該如何解決這個問題呢? – 2015-01-20 23:02:49
我不明白你的問題。請重新說明你的問題。如果你會發布一些你的HTML代碼也會有所幫助。 – 2015-01-20 23:07:51
那麼在頁面上,我們確實有一個主標題和整個網站的導航菜單。此標頭已修復。所以當滾動和滾動元素時,這個變量也會固定在主標題下。這個主標題的高度爲57px。因此,通過添加這個元素,當整個主標題滾動到元素上時,元素變得粘滯。但是我希望它在主標題的底部碰到元素時變得粘稠。 – 2015-01-20 23:13:52