美文网首页前端知识
网页前景、背景滚动不一致的效果实现

网页前景、背景滚动不一致的效果实现

作者: yimi珊 | 来源:发表于2016-06-19 16:37 被阅读554次

    前言

    网页前景和背景,滚动不一致的效果应该怎么实现呢?
    之前朋友推荐了这个网站给我 Snow Marvel,里面的前景跟背景滚动,是不一致的,很有趣。于是我就开始思考我应该怎么来制作这种效果呢!
    想了想,我觉得可以利用 position:fixed; ,还有 margin-top来实现效果。
    好了,废话不多说,我们先来把页面給建立起来吧!

    实现代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title> 
        <style>
            *{
                margin:0;
                padding:0;
            }
            #down_page{
                /*此处设置定位和z-index是为了后面使用margin-top改变位置*/
                position:fixed;
                z-index: -1;
                top: 0;
                left: 0;
            }
            #down_page img{
                height: 720px;
                float: left;
            }
            #top_page{
                padding-top: 600px;
            }
            #top_page div{
                width: 100%;
                height: 300px;
                color:white;
                font-size: 50px;
                text-align: center;
                padding-top: 200px;
            }
            .content1{
                background-color: #3ee;
                margin-bottom: 600px;
            }
            .content2{
                background-color: #e9c;
                margin-bottom: 600px;
            }
            .content3{
                background-color: #e66;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <!-- 这里是后面的图片层 -->
            <div id="down_page">
                <!-- 放置你所需的图片 -->           
                <img src="img/down_bg2.jpg" >
                <img src="img/down_bg1.jpg" >
                <img src="img/down_bg2.jpg" >
            </div>
            <!-- 上面内容层 -->
            <div id="top_page">
                <div class="content1">content 1</div>       
                <div class="content2">content 2</div>       
                <div class="content3">content 3</div>       
            </div>      
        </div>  
        <script>    
            //获取元素
            var oDownPage = document.getElementById('down_page');
            var oTopPage = document.getElementById('top_page');
            //当浏览器滚动时
            document.onscroll = function(){
                //浏览器滚动的距离
                var scroll_top = document.body.scrollTop;
                //计算背景高度与前景高度的比例
                var num = oDownPage.offsetHeight / oTopPage.offsetHeight;
                //设置背景层滚动的速度
                oDownPage.style.marginTop = -scroll_top * num + 'px';
            }
        </script>
    </body>
    </html>
    

    在线效果预览

    这里我并没有实现响应式,如有需要的话请自己添加。
    代码实现的还有不足之处,还要继续加油!

    By : Yimi-shan

    相关文章

      网友评论

        本文标题:网页前景、背景滚动不一致的效果实现

        本文链接:https://www.haomeiwen.com/subject/ckimdttx.html