gpt4 book ai didi

javascript - 带有纯 css 视差的 Jquery 滚动不起作用

转载 作者:太空狗 更新时间:2023-10-29 16:06:45 24 4
gpt4 key购买 nike

我正在尝试使用著名的 Keith Clark 纯 css 视差页面教程 (http://blog.keithclark.co.uk/pure-css-parallax-websites/)。

到目前为止,还不错。当我想将它与带有 jQ​​uery 平滑滚动的导航栏结合使用时,问题就来了。

当页面已经滚动时会出现问题。所以基本上,它从顶部精确地滚动到我希望它滚动的位置,但如果页面在产品或联系人上向下滚动,它会滚动到奇怪的地方。

我为此尝试了很多不同的代码片段,但它似乎就是不想工作!

HTML

导航:

<ul class="nav navbar-nav navbar-right">
<li><a href="#group2">Home</a></li>
<li><a href="#group3">About</a></li>
<li><a href="#group5">Products</a></li>
<li><a href="#group7">Contact</a></li>
</ul>

正文:

<div class="parallax">
<div id="group2" class="parallax__group">
<div class="parallax__layer parallax__layer--back">
<div class="title">START</div>
</div>
</div>
<div id="group3" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">ABOUT</div>
</div>
</div>
<div id="group4" class="parallax__group">
<div class="parallax__layer parallax__layer--deep">
<div class="title">RANDOM PICTURE</div>
</div>
</div>
<div id="group5" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">PRODUCTS</div>
</div>
</div>
<div id="group6" class="parallax__group">
<div class="parallax__layer parallax__layer--back">
<div class="title">RANDOM PICTURE</div>
</div>
</div>
<div id="group7" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">CONTACT</div>
</div>
</div>
</div>

J查询:

$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('.parallax').animate({
scrollTop: target.offset().top
}, 2500);
return false;
}
}
});
});

这是代码中最相关的部分 - 其余部分您可以在 jsfiddle 上找到... http://jsfiddle.net/mgLzejad/1/

检查代码,看看是否能找到错误 - 我找不到......

最佳答案

这是 jsfiddle:http://jsfiddle.net/mgLzejad/2/

target.offset().top 是根据 $('.parallax') 滚动量的相对值。要修复 scrollTop 值,请添加 $('.parallax')

的当前滚动值
scrollTop: $(target).offset().top + $('.parallax').scrollTop()

关于javascript - 带有纯 css 视差的 Jquery 滚动不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com