在另一个div上滚动div

时间:2013-05-22 09:42:52

标签: html5 html scroll

我有两个高度为100%的div。 当你滚动时,我希望第二个div超过其他滚动,而不是先滚动第一个。

喜欢这个网站:http://www.endzeit-ausstellung.de/

我看着Firebug,但我找不到那里的解决方案,有人可以帮助我吗?

提前多多谢谢!

5 个答案:

答案 0 :(得分:23)

你不需要jquery插件来做这个“滚动效果”。你只需要一些css;)

这里快速而肮脏的例子:

HTML

<div id="wrapper">
<div id="a" class="panels">FIXED PANEL</div>
<div id="b" class="panels">Scrolling-Panel 1</div>
<div id="c" class="panels">Scrolling-Panel 2</div>
<div id="d" class="panels">Scrolling-Panel 3</div>
</div>

CSS

// reset margin and padding of body and html
    html,body {
       padding:0;
       margin:0;
       background:black;
    }

    // allows us to scale all panels inside to full width and height
    #wrapper { 
        position:absolute;
        height:100%;
        width:100%;
    }

     // make all panels fullpage  
    .panels { 
        position:relative;
        height:100%;
        min-height:100%;
        width:100%;
        z-index:1000;
    }

    // this is the fixed first panel 
    #a{ 
        background:#eee;
        position:fixed;
        color:red;
        top:0;
        left:0;
        /* prevents your fixed panel from being on top of your subsequent panels */
        z-index: -99; 
    }

    // the second panel -> after the first fixed panel
    // should get 100% top margin, thats the trick
    #b{ 
       margin-top:100%;
       background:yellow;
    }

    #c{
       background:pink;
    }

    #d{
       background:green;
    }

演示:

jsfiddle Example

顺便说一句:我已经制作了endzeit-ausstellung.de网站。

答案 1 :(得分:1)

这称为Parallax效果滚动。这需要很多东西才能使它发挥作用。检查相同的资源。 The best one I found与您提供的网站引用非常相似。

希望这有帮助。

答案 2 :(得分:1)

使用jQuery检查jParallax:http://stephband.info/jparallax/

答案 3 :(得分:1)

这是视差滚动,有很多好的库可以帮助你。我之前使用过它们并且效果很好:

Skrollr - https://github.com/Prinzhorn/skrollr

Parallax.js - http://stolksdorf.github.io/Parallaxjs/

答案 4 :(得分:0)

有一种简单得多的方法。我在W3Schools上找到了它。重要的部分是添加background-attachment: fixed。完整的CSS如下所示:

.banner {
    background-image: url("foo.jpg");
    min-height: 500px; 
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}