我使用这段代码在滚动中添加了一个类。活动类工作很好,但是放置类时页面上的位置是不正确的。我们使用的主要标题在我们的网站上与位置固定,当这个标题变得粘,它是在我们的主要标题之下的地方,也与位置固定。活动类需要放在页面的前面,因为在放置类时,该部分的内容已经启动。
HTML:
<div style="height:57px;">
<div class="menu-header-product">
<div class="product-anchor-links-wrapper">
<nav class="product-page-nav">
<ul class="menu-header-top-product">
<li class="menu-item-header-product"><a href="#description" class="product-nav-link">Productbeschrijving</a></li>
<li class="menu-item-header-product"><a href="#additional" class="product-nav-link">Specificaties</a></li>
<li class="menu-item-header-product"><a href="#reviews" class="product-nav-link">Reviews</a></li>
</ul>
</nav>
</div>
</div>
</div>
<div class="content">
<section id="description">
<div class="box-description"></div>
</section>
<section id="additional">
<div class="box-additional"></div>
</section>
<section id="reviews">
<div class="box-reviews"></div>
</section>
</div>
这段代码有什么问题:
<script>
$(window).scroll(function(){
var sticky = $('.menu-header-product'),
scroll = $(window).scrollTop();
if (scroll >= 645) sticky.addClass('sticky');
else sticky.removeClass('sticky');
});
$(window).scroll(function(){
var sticky = $('.content'),
scroll = $(window).scrollTop();
if (scroll >= 645) sticky.addClass('sticky');
else sticky.removeClass('sticky');
});
$(document).ready(function () {
$(document).on("scroll", onScroll);
$('a[href^="#"]').on('click', function (e) {
e.preventDefault();
$(document).off("scroll");
$('a').each(function () {
$(this).removeClass('active');
})
$(this).addClass('active');
var target = this.hash;
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top-130 /**just subtract the height of the fixed html part */
}, 500, 'swing', function () {
window.location.hash = target;
$(document).on("scroll", onScroll);
});
});
});
function onScroll(event){
var scrollPosition = $(document).scrollTop();
$('nav a').each(function () {
var currentLink = $(this);
var refElement = $(currentLink.attr("href"));
if (refElement.position().top <= scrollPosition && refElement.position().top + refElement.height() > scrollPosition) {
$('nav ul li a').removeClass("active");
currentLink.addClass("active");
}
else{
currentLink.removeClass("active");
}
});
}
</script>
发布于 2015-01-17 07:25:12
您只是在标记中忘记了关闭的</section>
标记:
<section id="description">
<div class="box-description"></div>
<section id="additional">
<div class="box-additional"></div>
<section id="reviews">
<div class="box-reviews"></div>
应该是
<section id="description">
<div class="box-description"></div>
</section>
<section id="additional">
<div class="box-additional"></div>
</section>
<section id="reviews">
<div class="box-reviews"></div>
</section>
https://stackoverflow.com/questions/28000639
复制相似问题