headroom.js插件使用方法

1.什么是headroom.js?

headroom是用纯Javascript写的插件,用来隐藏和展示页面元素,从而为页面留下更多空间。比如使用headroom能使导航栏当页面下滚时消失,当页面上滚时候又出现。(查看效果


2.工作原理

通过感应目标元素不同的3种状态(原始,下滚,上滚),为目标元素更改相应的class,通过相应的class的css样式的变化得到所要的效果。


3.如何使用

(以下的例子是基于bootstrap框架和jquery插件的,在bootstrap框架下可以快速写出导航栏navbar,然后以jquery插件方式对导航栏navbar调用headroom()。)

首先需要引用headroom.js和jQuery.headroom.js。将以下的代码加入到你的代码中。headroom.js作用:感应元素不同的状态为之更改相应的class。jQuery.headroom.js作用:提供jquery插件方式和Data-API方式调用headrooom()。

<script  type="text/javascript"  src="https://rawgithub.com/WickyNilliams/headroom.js/master/dist/headroom.js"></script><script  type="text/javascript"  src="https://rawgithub.com/WickyNilliams/headroom.js/master/src/jQuery.headroom.js"></script>

因为headroom()函数传入的参数option对象的默认值如下。

 

{// 在元素没有固定之前,垂直方向的偏移量(以px为单位)offset : 0,// scroll tolerance in px before state changestolerance : 0,// 对于每个状态都可以自定义css classes 
    classes : {// 当元素初始化后所设置的classinitial : "headroom",// 向上滚动时设置的classpinned : "headroom--pinned",// 向下滚动时所设置的classunpinned : "headroom--unpinned"}
}

 

由此可知原始的状态对应的class是headroom,下滚时的class是headroom--pinned,上滚时的class是headroom--unpinned。所以我们要添加下面的样式,通过css的trasition属性达到变换效果。

 

    <style type="text/css">.headroom {position: fixed;top: 0;left: 0;right: 0;transition: all .2s ease-in-out;}.headroom--unpinned {top: -100px;}.headroom--pinned {top: 0;}</style>

 

之后添加下面的js代码,使用jquery插件的方式调用。".navbar-fixed-top"只是用来获取导航栏navbar,也可以用其他选择器来获取navbar目标元素

 

    <script type="text/javascript">  $(".navbar-fixed-top").headroom();     </script>  

 

做完了上述步骤,理论上你就可以看到headroom的效果了,如果没有成功可能是以下的原因:

1、js的引用顺序错误,因为一些js要用到其他js才能运行的,所以必须放在其他的js之后。例如

<script type="text/javascript">$(".navbar-fixed-top").headroom();   
</script>

必须放在headroom.js和jQuery.headroom.js之后,而headroom.js和jQuery.headroom.js必须放在jQuery.js之后。

2、将$(".navbar-fixed-top").headroom(); 放在主体html代码之前,如放在<head></head>中,因为在主体html代码之前,navbar元素还没加载就调用 了headroom(),所以无效。应该用以下代码替换之,表示等文档加载完毕再调用。

  <script type="text/javascript">$("doucument").ready(fuction(){$(".navbar-fixed-top").headroom(); });  </script>

上述的效果只是通过css自带的trasition属性来实现效果,比较单调。不过可以结合animate.css实现更多的漂亮的消失和出现的效果。(查看效果)

animate.css使用纯css为各种元素实现不同的动画效果,每一种class对应一种动画效果,所以将animate.css引入代码后headroom()可以直接使用已经写好的class。(animate.css下载)

我基于bootstrap和jquery写得例子。

 

  1 <!DOCTYPE html>
  2 <html>
  3   <head>
  4     <title>Bootstrap 101 Template</title>
  5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6     <!-- Bootstrap -->
  7     <link rel="stylesheet" href="http://cdn.bootcss.com/twitter-bootstrap/3.0.3/css/bootstrap.min.css">
  8 
  9     <link rel="stylesheet" href="I:/webpage/animate/animate.css">
 10 
 11     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
 12     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 13     <!--[if lt IE 9]>
 14         <script src="http://cdn.bootcss.com/html5shiv/3.7.0/html5shiv.min.js"></script>
 15         <script src="http://cdn.bootcss.com/respond.js/1.3.0/respond.min.js"></script>
 16     <![endif]-->
 17     <style type="text/css">
 18         .headroom {position: fixed;top: 0;left: 0;right: 0;transition: all .2s ease-in-out;}
 19         .headroom--unpinned {top: -100px;}
 20         .headroom--pinned {top: 0;}
 21     </style>
 22 
 23     <style type="text/css">
 24       .scrollspy-example {
 25         height: 1200px;
 26         overflow: auto;
 27         position: relative;
 28       }
 29     </style>
 30 
 31 
 32   </head>
 33   <body>
 34 
 35     <!-- 页眉大屏显示 -->
 36     <div class="jumbotron">
 37         <div class="container">
 38             <h1>Hello, world!</h1>
 39             <p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
 40             <p><a class="btn btn-primary btn-lg" role="button">Learn more »</a></p>
 41         </div>
 42     </div>
 43 
 44     <div class="container">
 45 
 46         <!-- 导航栏 -->
 47         <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="example">
 48             <div class="navbar-header">
 49               <a class="navbar-brand" href="#">w3school</a>
 50             </div>
 51 
 52             <div class="collapse navbar-collapse" id="tem">
 53                 <ul class="nav navbar-nav">
 54                     <li class="active"><a href="#php">PHP</a></li>
 55                     <li><a href="#js">JS</a></li>
 56                     <li class="dropdown">
 57                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">database<b class="caret"></b></a>
 58 
 59                         <ul class="dropdown-menu">
 60                             <li><a href="#mysql">MySQL</a></li>
 61                             <li><a href="#pgsql">PostgreSQL</a></li>
 62                             <li><a href="#mgdb">MogoDB</a></li>
 63                         </ul>
 64                     </li>
 65                 </ul>
 66             </div>
 67         </nav>
 68 
 69         <!-- 主体内容-->
 70         <div data-spy="scroll" data-target="#example" data-offset="0" class="scrollspy-example">
 71             <h4 id="php">PHP</h4>
 72             <p>PHP, an acronym for Hypertext Preprocessor, is a widely-used open source general-purpose scripting language. It is an HTML embedded scripting language and is especially suited for web development. The basic syntax of PHP is similar to C, Java, and Perl, and is easy to learn. PHP is used for creating interactive and dynamic web pages quickly, but you can do much more with PHP.
 73              </p>
 74             <h4 id="js">JS</h4>
 75             <p>
 76             JavaScript is a cross-platform, object-oriented scripting language developed by Netscape. JavaScript was created by Netscape programmer Brendan Eich. It was first released under the name of LiveScript as part of Netscape Navigator 2.0 in September 1995. It was renamed JavaScript on December 4, 1995. As JavaScript works on the client side, It is mostly used for client-side web development.
 77             </p>
 78             <h4 id="mysql">MySQL</h4>
 79             <p>
 80             MySQL tutorial of w3cschool is a comprhensive tutorial to learn MySQL. We have hundreds of examples covered, often with PHP code. This helps you to learn how to create PHP-MySQL based web applications.
 81             </p>
 82             <h4 id="pgsql">PostgreSQL</h4>
 83             <p>
 84             In 1986 the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc sponsored Berkeley POSTGRES Project which was led by Michael Stonebrakessr. In 1987 the first demo version of the project is released. In June 1989, Version 1 was released to some external users. Version 2 and 3 were released in 1990 and 1991. Version 3 had support for multiple storage managers, an query executor was improved, rule system was rewritten. After that, POSTGRES has been started to be implemented in various research and development projects. For example, in late 1992, POSTGRES became the primary data manager for the Sequoia 2000 scientific computing project4. User community around the project also has been started increasing; by 1993, it was doubled.
 85             </p>
 86             <h4 id="mgdb">MongoDB</h4>
 87             <p>
 88             The term NoSQL was coined by Carlo Strozzi in the year 1998. He used this term to name his Open Source, Light Weight, DataBase which did not have an SQL interface.In the early 2009, when last.fm wanted to organize an event on open-source distributed databases, Eric Evans, a Rackspace employee, reused the term to refer databases which are non-relational, distributed, and does not conform to atomicity, consistency, isolation, durability - four obvious features of traditional relational database systems.
 89             </p>
 90             <p>
 91             After reading the largest third party online MySQL tutorial by w3cschool, you will be able to install, manage and develop PHP-MySQL web applications by your own. We have a comprehensive, SQL TUTORIAL, which will help you to understand how to prepare queries to fetch data against various conditions.
 92             </p>
 93 
 94         </div>
 95     </div>
 96 
 97 
 98     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 99     <script src="http://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
100     <!-- Include all compiled plugins (below), or include individual files as needed -->
101     <script src="http://cdn.bootcss.com/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
102 
103 
104     <script  type="text/javascript"  src="https://rawgithub.com/WickyNilliams/headroom.js/master/dist/headroom.js"></script>
105 
106     <script  type="text/javascript"  src="https://rawgithub.com/WickyNilliams/headroom.js/master/src/jQuery.headroom.js"></script>
107 
108     <script type="text/javascript">
109 
110             $(".navbar-fixed-top").headroom();
111 
112     </script>
113 
114 
115   </body>
116 </html>

 

原文地址:http://blog.csdn.net/chenyulearn/article/details/19606751

 

 

 


 

转载于:https://www.cnblogs.com/ccode/p/3905922.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK 8 新特性 之 方法引用

概述 方法引用&#xff1a;当要传递给Lambda体的操作&#xff0c;已经有实现的方法了&#xff0c;就可以使用方法引用方法引用&#xff1a;在Lambda的基础上进一步的简化。换句话说&#xff0c;方法引用就是Lambda表达式&#xff0c;也就是函数式接口的一个实例&#xff0c;通过…

项目记录:springmvc forward redirect 问题

RequestMapping("/redirect")public String redirect(RedirectAttributes redirectAttributes){redirectAttributes.addFlashAttribute("test", "testdata"); //专供此种情况下使用。return "redirect:read";} 注意&#xff1a;此种情…

JDK 8 新特性 之 Lambda表达式

前言 Lambda 表达式&#xff0c;也可称为闭包&#xff0c;它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为参数传递进方法中。使用 Lambda 表达式可以使代码变的更加简洁紧凑。lambda表达式的重要特征: 可选类型声明&#xff1a;不需要声明参数类型&#xff0c;编译…

开源组件DocX导出Word

1、使用Docx替换Word模板里书签里内容的一个方法 using Novacode;public class ExportWord{/// <summary>/// 导出word/// </summary>/// <param name"lBookMarks">书签数据源</param>/// <param name"sTemplatePath">导出W…

JDK 8 新特性 之 Strams简单使用

概述 Java 8 API添加了一个新的抽象称为流Stream&#xff0c;可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提供Java程序员的生产力&#xff0c;让程序员写出…

Cannot open include file: jni.h: No such file or directory解决方法

在此运行Visual Studio 2012 项目时出现 #include <stdio.h> #include <jni.h> int main() { printf("Hello World"); } But when I try to build, I get the following error - 1>c:testtest.cpp(2) : fatal error C1083: Cannot open include file:…

JDK 8 新特性 之 函数接口

函数接口 定义:接口中只有唯一的一个抽象方法&#xff0c;该接口就称之为函数接口。 //函数接口 public interface FunctionInterface1 {//1、只有一个方法的接口&#xff0c;默认称之为函数接口void get(); }//非函数接口 public interface FunctionInterface2 {void get1();v…

微服务之基础知识

什么是微服务架构 微服务是系统架构上的一种设计风格&#xff0c; 它的主旨是将一个原本独立的系统拆分成多个小型服务&#xff0c;这些小型服务都在各自独立的进程中运行&#xff0c;服务之间通过基于HTTP的RESTful API进行通信协作。 被拆分成的每一个小型服务都围绕着系统中…

LightOj 1078 Basic Math

思路&#xff1a; 设输入的两个数分别为n和a,每一次所得到的数为update&#xff1a; 开始updatea,依次update分别为update*10a,这样数据会超出范围&#xff0c;则update每次为update(update*10a)%n即可&#xff0c; 如果update0,跳出循环&#xff1b; 只需证明&#xff1a;(upd…

还是俄罗斯方块之android版

前面的&#xff0c;口水话 请直接跳过。 虽然现在不比以前了 也没多少人气了&#xff0c;放到首页 都不到几百的点击量。也许博客园整体水平也是在往水的方向发展。不谈那些了&#xff0c;哥也曾经辉煌过 有过一天上千的点击量 &#xff0c;哥也曾经有过粉丝&#xff0c;被小妹…

Integer 值判断相等

Integer 值判断相等 案例&#xff1a; public class Test {public static void main(String[] args) {Integer a 127;Integer b 127;System.out.println("a b :" (a b));System.out.println("a.equals(b):"a.equals(b));String x "127";Str…

自定义快捷命令程序(VC++加批处理)

一 概述 在看《从小工到专家-程序员修炼之道》时&#xff0c;看到建议使用Shell&#xff0c;很有感触。在很多时候&#xff0c;通过键盘操作&#xff0c;比鼠标的确会块很多&#xff0c;如果能用好shell命令&#xff08;或批处理命令&#xff09; &#xff0c;的确能节省我们…

Redis 快速入门

简介 Redis 是一个 Key-Value 存储系统。和 Memcached 类似&#xff0c;它支持存储的 value 类型相对更多&#xff0c;包括 string(字符串)、 list(链表)、 set(集合)和 zset(有序集合)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作&#xff0c…

7. Adapter

转载于:https://www.cnblogs.com/anit/p/3930202.html

Redis 中常用命令

Redis 中常用命令 keys 返回满足给定 pattern 的所有 key。 127.0.0.1:6379> keys *1) "name2"2) "myzset"3) "myset7"4) "name"5) "myset6"6) "mylist"7) "mylist2"8) "myset3"9) "…

CGI与Servlet的区别和联系

1. 定义&#xff1a; CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具&#xff0c;其程序须运行在网络服务器上。 2. 功能&#xff1a; 绝大多数的CGI程序被用来解释处理杰自表单的输入信息&#xff0c;并在服 务器产生…

Redis sorted set 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…

Gradle中的buildScript代码块

在编写Gradle脚本的时候&#xff0c;在build.gradle文件中经常看到这样的代码&#xff1a; build.gradle1 2 3 4 5 6 7 8 9 buildScript {repositories {mavenCentral() } }repositories {mavenCentral() }这样子很容易让人奇怪&#xff0c;为什么repositories要声明两次哪&…

Redis List 类型操作及常用命令

七个原则 Redis 是一个操作数据结构的语言工具&#xff0c;它提供基于 TCP 的协议以操作丰富的数据结构。在 Redis 中&#xff0c;数据结构这个词的意义不仅表示在某种数据结构上的操作&#xff0c;更包括了结构本身及这些操作的时间空间复杂度。Redis 定位于一个内存数据库&am…

Hibernate查询之Criteria查询

转自&#xff1a;http://www.cnblogs.com/Laupaul/archive/2012/02/15/2353194.html Criteria是一种比hql更面向对象的查询方式。Criteria 可使用 Criterion 和 Projection 设置查询条件。可以设置 FetchMode( 联合查询抓取的模式 ) &#xff0c;设置排序方式&#xff0c;Crite…