当前位置: 首页 > 工具软件 > headroom.js > 使用案例 >

Headroom.js的使用demo

万俟修诚
2023-12-01
  • Headroom.js 是什么?

Headroom.js 是一个轻量级、高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应。此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航条消失,当页面向上滚动时,导航条就出现了。

  • Headroom.js 有什么用?

固定页头(导航条)可以方便用户在各个页面之间切换。但是这也会带来些问题…

大屏幕一般都是宽度大于高度的,也就是说屏幕高度要少一些。固定页头会占用一部分本来可以用于展示内容的区域。小屏幕一般是高度较大,但是别忘了,屏幕本来就小,页头再占用一部分的话,屏幕可用于展示内容的区域当然还是少。

Headroom.js 能帮你把不需要的页面元素在合适的时间展示出来,让用户花更多时间关注你页面上的内容。

工作原理

简单来说,headroom.js 只是为需要响应滚动事件的页面元素增加或删除一个CSS class

<!-- 初始状态 -->
<header class="headroom">
​
<!-- 向下滚动时 -->
<header class="headroom headroom--unpinned">
​
<!-- 向上滚动时 -->
<header class="headroom headroom--pinned">复制代码

通过CSS class的设置,事情变得简单了。所有的控制权就交回到了你的手中,当页面向上或向下滚动时,你就可以通过设置CSS样式来做出自己需要的变化了。

代码demo 你要自己下载Headroom.js并引入

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <title>Headroom.js</title>
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="headroom.css" type="text/css">
    <!--<link href="//cdn.bootcss.com/normalize/2.1.0/normalize.css" rel="stylesheet">-->
    <!--<script src="http://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>-->
    <script src="headroom.js" type="text/javascript"></script>
    <!--<script src="//cdn.bootcss.com/headroom/0.7.0/jQuery.headroom.js"></script>-->
</head>
<body>
        <header id="header" class="header header--fixed">
            Headroom.js
        </header>
        <!--测试增加页面/start-->
        <div style="height:1000px;background: #FF0000;color:#FFFFFF;padding-top:46px;text-align: center;font-size: 60px;">红
        </div>
        <div style="height:1000px;background: #00FF00;color:#FFFFFF;text-align: center;font-size: 60px;">绿</div>
        <div style="height:1000px;background: #0000FF;color:#FFFFFF;text-align: center;font-size: 60px;">蓝</div>
        <!--测试增加页面/end-->
        <script>
            var header = document.querySelector("header");
            var headroom = new Headroom(header, {
                tolerance: 5,
                offset: 205,
                classes: {
                    initial: "animated",
                    pinned: "slideDown",
                    unpinned: "slideUp"
                }
            });
            headroom.init();
​
            //jquery的使用方式
            // $(function() {
            //     $("#header").headroom({
            //         tolerance: 5,
            //         offset: 205,
            //         classes: {
            //             initial: "animated",
            //             pinned: "slideDown",
            //             unpinned: "slideUp"
            //         }
            //     });
            // })
        </script>
</body>
</html>复制代码

css样式:

*{
    margin: 0;
    padding: 0;
}
.header {
    background-color: #292f36;
    height:46px;
    line-height: 46px;
    color: #FFFFFF;
    padding: 0 1.5em;
    text-align: center;
}
​
.header--fixed {
    position: fixed;
    z-index: 10;
    right: 0;
    left: 0;
    top: 0
}
​
.animated {
    -webkit-animation-duration: .5s;   /*表示动画执行的时间*/
    -webkit-animation-fill-mode: both; /*规定动画在播放前和之后其动画效果是否可见*/
    animation-fill-mode: both
}
​
@-webkit-keyframes slideDown {       /*表示匀速地执行动画*/
    0% {
        -webkit-transform: translateY(-46px);
    }
​
    100% {
        -webkit-transform: translateY(0);
    }
}
​
.animated.slideDown {
    -webkit-animation-name: slideDown;   /*规定需要绑定到选择器的 keyframe 名称。。*/
    animation-name: slideDown
}
​
@-webkit-keyframes slideUp {
    0% {
        -webkit-transform: translateY(0);
    }
​
    100% {
        -webkit-transform: translateY(-46px);
    }
}
​
.animated.slideUp {
    -webkit-animation-name: slideUp;
    animation-name: slideUp
}复制代码


 类似资料: