javascript - 网页中的一块区域,我想页面上滑的时候显示,页面下滑的时候消失,用js怎么做呢?
阿神
阿神 2017-04-11 10:39:16
[JavaScript讨论组]

1.con_1在页面下滑的时候消失,页面上滑一定距离显示出来,另外希望con_2不要脱离文档流。
2.html代码:



    
        
        
        
    
    
        
阿神
阿神

闭关修行中......

全部回复(4)
PHP中文网

我的思路:监听scrollTop的值,变大就是向下滑,改变con_2的CSS。反之...

补充贴上代码:

$(document).ready(function() {
        var p = 0,
            t = 0;

        $(window).scroll(function(e) {
            p = $(this).scrollTop();

            if (t <= p) { //下滚
                console.log("down");
            } else { //上滚
                console.log("up");
            }
            setTimeout(function() {
                t = p;
            }, 0);
        });
    });
阿神

推荐你一个插件,headroom.js 就是干这个的。还能实现多种过滤动画效果。

PHP中文网

设置滚动条据顶部的高度:
$("p").scrollTop(100); //把 scroll top offset 设置为 100px
获得滚动条的高度:
$("p").scrollTop();//获得 scroll top offset
触发滚动事件
$(selector).scroll()
将函数绑定到滚动事件中:
$(selector).scroll(function)

在回调函数里面设置你想要的功能,计算出高度,然后改变con_2的css

大家讲道理
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
        body,p,header,footer,section,ul,ol,span,li,a{
            padding: 0;
            margin: 0;
        }
        body{
            width: 100%;
            height: auto;
        }
        header{
            width: 100%;
            height: 100px;
            background-color: royalblue;
        }
        section#con_1{
            width: 100%;
            height: 500px;
            background-color: green;
        }
        section#con_2{
            width: 100%;
            height: 600px;
            background-color: brown;
        }
        footer{
            width: 100%;
            height: 200px;
            background-color: grey;
        }
        </style>
    </head>
    <body>
        <header></header>
        <section id="con_1"></section>
        <section id="con_2"></section>
        <footer></footer>
        <script>
            var a;
            var con1=document.getElementById("con_1");
            var con2=document.getElementById("con_2");
           
            function scroll( fn ) {
            var beforeScrollTop = document.body.scrollTop,//获取初始滚动高度
                fn = fn || function() {};
            window.addEventListener("scroll", function() {
                var afterScrollTop = document.body.scrollTop,//新的滚动高度
                    delta = afterScrollTop - beforeScrollTop;//判断滚动方向
                if( delta === 0 ) return false;
                fn( delta > 0 ? "down" : "up" );
                beforeScrollTop = afterScrollTop;
            }, false);
        }
        scroll(function(direction) { 
            a =  direction;
            if(a=="up"){
                con1.style.display="block";
                con2.style.display="none";
            }else if(a=="down"){
                con1.style.display="none";
                con2.style.display="block";
            }
        }); 
        </script>
    </body>
</html>

效果有点生硬,你可以加一些动画效果,可能会更好

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号