如何锁定'滚动到div?

时间:2014-07-19 19:07:06

标签: javascript jquery css html5

我已经设置了一个滚动网站(基本上是一个视差风格的页面,没有视差效果),其中每个“页面”只是一个占据屏幕100%的div。但我需要某种机制来将滚动“锁定”到正确的位置,以便div与用户的浏览器正确对齐。

如果您需要一个示例,Flickr的启动页面可以完美地完成此操作。

感谢。

编辑:这是我正在处理的网站的链接。代码有点混乱,有些图像没有加载(因为它们还没有托管),但它可以让你大致了解网站的运作方式。 http://fiddle.jshell.net/99QjJ/

2 个答案:

答案 0 :(得分:1)

我刚刚尝试构建一个快速解决方案:Fiddle

它会阻止正常滚动并滚动到div的适当偏移量:

if(!scrolling) {
    scrolling = true;
    currentDiv = (scrollDirection == "down" ? currentDiv + 1 : currentDiv - 1)
    $("html,body").animate({
        "scrollTop":offsets[currentDiv]
    },{queue:true,duration:1000,complete:function() {
        window.setTimeout(function() {
             scrolling = false;
         },200);
    }});

它没有完整的解决方案,但我认为这会奏效。 另一个想法是使用数千个jQuery插件中的一个,这些插件通过箭头键可以滚动页面。我认为如果每个div都符合整个屏幕尺寸,那么就没有实际需要滚动"介于"之间。

答案 1 :(得分:0)

所以你要做一个页面'网站,对吗?你不能在你想跳到的每个元素上使用锚标记吗?

您可以使用this漂亮的jQuery插件

为其设置动画效果