Headroom.js是一个轻量级高性能的JS插件 ,响应用户鼠标滚动操作。弹出或隐藏顶部导航菜单。
它是如何工作的?
在它的最基本的headroom.js简单地添加和删除CSS类从以响应滚动事件的元素:
< - !开始 - > <header class="headroom"> < - !向下滚动 - > <header class="headroom headroom--unpinned"> < - 向上滚动 - > <header class="headroom headroom--pinned">
用法
使用headroom.js是非常简单的。它有一个纯JS API,以及可选的jQuery /的Zepto兼容和AngularJS插件。
用纯JS
// grab an element
var myElement = document.querySelector("header");
// construct an instance of Headroom, passing the element
var headroom = new Headroom(myElement);
// initialise
headroom.init();使用jQuery /的Zepto
// simple as this!
// NOTE: init() is implicitly called with the plugin
$("header").headroom();
The plugin also offers a data-* API if you prefer a declarative approach.
<!-- selects $("[data-headroom]") -->
<header data-headroom>注:的Zepto的附加数据模块所需的兼容性。
随着AngularJS
<header headroom></header>
<!-- or -->
<headroom></headroom>
<!-- or with options -->
<headroom tolerance='0' offset='0' classes="{pinned:'headroom--pinned',unpinned:'headroom--unpinned',initial:'headroom'}"></headroom>选项
Headroom.js还可以接受的选择对象来改变它的行为方式。您可以通过检查Headroom.options看到默认的选项。是选择对象的结构如下:
{
// vertical offset in px before element is first unpinned
offset : 0,
// scroll tolerance in px before state changes
tolerance : 0,
// css classes to apply
classes : {
// when element is initialised
initial : "headroom",
// when scrolling up
pinned : "headroom--pinned",
// when scrolling down
unpinned : "headroom--unpinned"
}
}示例
如果你想看到一些示例用法头部到headroom.js游戏室。在那里,您可以调整所有的高度的选择和运用交互式演示不同的CSS效果。