js实现导航栏的吸顶操作
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <style type="text/css">
- body {
- padding:0;
- margin:0;
- }
- #nav {
- width:100%;
- height:60px;
- background:#39f;
- color:#fff;
- line-height:60px;
- text-align:center;
- padding:0;
- margin:0;
- list-style:none;
- }
- #nav li {
- float:left;
- width:20%;
- height:60px;
- }
- .fix {
- position:fixed;
- top:0;
- left:0;
- }
- </style>
- </head>
- <div class="wrap">
- <h1>在线书城</h1>
- <p>有没有一本书让你仿佛遇到春风十里</p>
- <ul id="nav">
- <li>加入购物车</li>
- <li>加入收藏</li>
- <li>立即购买</li>
- </ul>
- <div class="con">
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- <p>好书有好事有好诗</p>
- </div>
- </div>
- <script type="text/javascript">
- var tit = document.getElementById("nav");
- //alert(tit);
- //占位符的位置
- var rect = tit.getBoundingClientRect();//获得页面中导航条相对于浏览器视窗的位置
- var inser = document.createElement("div");
- tit.parentNode.replaceChild(inser,tit);
- inser.appendChild(tit);
- inser.style.height = rect.height + "px";
- //获取距离页面顶端的距离
- var titleTop = tit.offsetTop;
- //滚动事件
- document.onscroll = function(){
- //获取当前滚动的距离
- var btop = document.body.scrollTop||document.documentElement.scrollTop;
- //如果滚动距离大于导航条据顶部的距离
- if(btop>titleTop){
- //为导航条设置fix
- tit.className = "clearfix fix";
- }else{
- //移除fixed
- tit.className = "clearfix";
- }
- }
- </script>
- </html>
当页面向下滚动时超过了吸顶导航的初始位置时,需要把吸顶导航栏固定在窗口顶部,一般吸顶导航栏还可以替换成文章标题栏,搜索框、tab条等等,例如百度糯米,天猫,淘宝最为常用。它们共同点是在内容或者功能上比较重要,但又不是最重要的元素,最重要的一般会放置于顶部。
1.实现思路是监听 scroll 事件,判断当前页面的滚动位置,当滚动距离大于导航条距顶部的距离时,为导航条采用窗口定位。
2.与“回到顶部“的实现方法一样,但是会发现实现吸顶功能时,到了临界位置时,页面会抖动一下,因为当导航条fixed出去,下部内容填补了导航条离开的位置。抢占了导航条的位置,所以抖动了一下。此处我们设置一个占位符,守住导航条的位置。
效果如下:
js实现导航栏的吸顶操作的更多相关文章
- 原生js实现导航栏吸顶
实现滑动滚动条让导航栏吸顶原理:主要是通过监听scroll,设定一个滚动条垂直位移作为临界,让导航栏吸顶或者取消吸顶. 话不多说了,代码如下: window.onscroll = function ( ...
- 【2017-03-31】JS-DOM操作:操作属性、彩虹导航栏、定时器、操作内容、创建元素并添加、操作相关元素
一.操作属性 1.什么是属性: <div class="div" id="div1" style="" ></div> ...
- js动态控制导航栏样式
导航栏一般做为母版页,为了使增加用户体验,往往在用户进入某个页面给予导航栏相应的样式,这里可以用js动态添加 <div class="box_left fl"> < ...
- JS面向对象方法(一): 使用原生JS 实现导航栏下多级分类弹出效果
利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类 代码如下: CSS部分: 在原来的目标:hover样式中 增加 .hover状态 li ...
- JS自适应导航栏,菜单栏
1. 打开 https://github.com/VPenkov/okayNav下载源代码 2.引入两个css样式 <link rel="stylesheet" href=& ...
- js滑动导航栏点击后居中效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 5行js代码搞定导航吸顶效果
一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...
- 在UWP中页面滑动导航栏置顶
最近在研究掌上英雄联盟,主要是用来给自己看新闻,顺便copy个界面改一下段位装装逼,可是在我copy的时候发现这个东西 当你滑动到一定距离的时候导航栏会置顶不动,这个特性在微博和淘宝都有,我看了@ms ...
- UWP中使用Composition API实现吸顶(2)
在上一篇中我们讨论了不涉及Pivot的吸顶操作,但是一般来说,吸顶的部分都是Pivot的Header,所以在此我们将讨论关于Pivot多个Item关联同一个Header的情况. 老样子,先做一个简单的 ...
随机推荐
- pdf2swf+flexpaper解决pdf在线阅读(类百度文库)
1:工具准备swftools.exe 下载 http://www.swftools.org/download.html 安装至D盘 SWFTools提供了一系列将各种文件转成swf的工具: font2 ...
- python中的列表和字典(二)
三. 字典以及相关使用 1. 字典的定义 dict{} 2. 字典特征:字典是无序的,key-value键值对形式,key值不重复 3. 字典的赋值:dictA = {keyA: valueA, ke ...
- js 去除字符串两边的空格
js 去除字符串两边的空格 function trim(str){ //删除左右两端的空格 return str.replace(/(^\s*)|(\s*$)/g, "&q ...
- UVALive - 4126 Password Suspects (AC自动机+状压dp)
给你m个字符串,让你构造一个字符串,包含所有的m个子串,问有多少种构造方法.如果答案不超过42,则按字典序输出所有可行解. 由于m很小,所以可以考虑状压. 首先对全部m个子串构造出AC自动机,每个节点 ...
- Spring通过XML方式实现定时任务
package com.wisezone.service; import java.text.SimpleDateFormat; import java.util.Date; import org.s ...
- LeetCode Relative Ranks
原题链接在这里:https://leetcode.com/problems/relative-ranks/#/description 题目: Given scores of N athletes, f ...
- npm镜像安装
安装淘宝NPM镜像 https://npm.taobao.org/ npm install -g cnpm --registry=https://registry.npm.taobao.org 配置 ...
- RequireJS 也可以引入 VUE
RequireJS 也可以引入 VUE 由于 FastAdmin 是使用 RequireJS 导入 JS 模块的. 有人想把 VUE 也引入进去,虽然说也是可以,VUE 还是推荐使用 Webpack ...
- Vue 中的 computed 和 methods
Vue 中的 computed 和 methods 使用 computed 性能会更好. 如果你不希望缓存,可以使用 methods 属性.
- Kerberos的hive链接问题
javax.security.auth.login.LoginException: Checksum failed 之前碰到过类似的问题,都是因为服务器端的keytab问题:多半是因为重新生成了key ...