我使用此代码在滚动上添加一个类。活动类工作得很好,但放置类时页面上的位置不正确。我们在我们的网站上使用了一个固定位置的主标题,当这个标题变为粘性时,它位于我们的主标题下方也是固定的。滚动时,活动类需要在页面的前面放置,因为在放置类时,部分的内容已经开始。
由于某些原因,代码与同一页面上的另一个脚本冲突,我该如何解决这个问题?这两个脚本彼此相邻。
小提琴:http://jsfiddle.net/0knrcv3z/1/
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>
答案 0 :(得分:0)
滚动时,if( scroll&gt; = 50 )sticky.addClass(&#39; sticky&#39;);其他 sticky.removeClass(&#39;粘&#39); }); $(window).scroll(function(){var sticky = $(&#39; .content&#39;), scroll = $(window).scrollTop();
if( scroll&gt; = 12 )sticky.addClass(&#39; sticky&#39;);其他 sticky.removeClass(&#39;粘&#39); });
添加了sticke标题&#34; 50&#34;并删除它在12下滚动。只要编辑这些数字,只要它对你有好处;)