2017-06-12 121 views
1

我已经建立了这个网站,它基本上分成3个div,我在滚动浏览它们的时候写了一些动画脚本。topScroll动画阻塞页面滚动jquery

<div id="home"></div> 
<div id="portfolio"></div> 
<div id="about"></div> 

我拥有了整个演示在这里:https://jsfiddle.net/7cv6zd1L/在那里你可以很明显的看出,该动画的“组合” DIV我的网页将不会继续向下滚动之后。我已经在那里它不会向上滚动同样的问题,但我在这里固定它:

var lastScroll = $(window).scrollTop(); 
$(window).scroll(function() { 
       console.log(lastScroll); 
       var scrollTop = $(window).scrollTop(); 
       var divTop = $("#portfolio").offset().top; 
       if (scrollTop > lastScroll && scrollTop > $('body').height()/3) { 
        $('body').stop().animate({ 
        scrollTop: divTop 
        }, 50); 
       } 
       lastScroll = scrollTop; 
      }); 

我似乎无法总结我的周围动画的逻辑头,一点点帮助,将不胜感激。

P.S.不要让失踪的图像混淆你我没有故意包含它们。

编辑:我希望能够在转换到下一个div时使用上述相同的代码。

+0

什么是你想在这里实现? – Rafael

+0

@rafael使用脚本在网页中自由滚动。如果你打开演示,你会发现滚动在某个点被阻止。 。 –

+0

的IF用'$( '主体')停止()动画({ \t \t \t \t \t \t scrollTop的:divTop \t \t \t \t \t \t},50);'引起问题,因为divTop是' #porfolio'抵消。所以身体正在滚动到那个位置。这就是为什么你不能向下滚动。你想在那里实现什么? –

回答

1

如果你只是希望能够在动画后向下滚动,然后再更改本:

if (scrollTop > lastScroll && scrollTop > $('body').height()/3) 

这样:

if (scrollTop > lastScroll && scrollTop > $('body').height()/3 && scrollTop < divTop) 
+0

非常感谢,upvote这个人... –

+0

不客气=)很高兴它的工作。 – Repo