js实现导航跟随效果


Posted in Javascript onNovember 17, 2018

本文实例为大家分享了js实现导航跟随效果展示的具体代码,供大家参考,具体内容如下

js实现导航跟随效果                          

如何实现上面的效果,请看下面的步骤

第一步:用 css 调整样式 ,这里小编用的是弹性盒子实现导航的平均分配。(聪明的你可以尝试用其他的方式看看能不能实现)css代码如下:

<style type="text/css">
 *{padding:0;margin:0;}
 a{text-decoration:none;}
 html,body{height:100%;width:100%;background:black;}
 ul{position:relative;width:990px;list-style:none;background:white;display: flex;flex-direction:row;justify-content: space-around;margin:50px auto;border-radius:10px;}
 ul li{position: relative;flex:1;text-align:center;}
 ul li a{font-size:18px;color:#333;padding:10px 0;display: block;}
 .cloud{position:absolute;left:32px;top:0;bottom:0;margin:auto;width:83px;height:42px;background:url('images/cloud.gif');}
 </style>

html代码如下:这里 a 标签中的 href 属性后面加上那句代码是为了在实现点击事件时不让他有其他事件发生

<ul>
 <span class="cloud"></span>
 <li> <a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >首页 </a></li>
 <li><a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >电视剧</a></li>
 <li><a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >最新电影</a></li>
 <li><a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >新闻头条</a></li>
 <li><a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >八卦娱乐</a></li>
 <li><a href="javascript:viod(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >军事热点</a></li>
 </ul>

第二步:分析下如何获得   图片(cloud.gif)   距离最左边的  left  值

js实现导航跟随效果

 第三步:实现鼠标移动,移除,和点击事件的效果

<script type="text/javascript">
 //获得类为cloud的标签,
 var pic=document.getElementsByClassName('cloud')[0];
 //获得所有的 li 标签
 var liList=document.getElementsByTagName('li');
 //定义向右的移动初始距离
 var liLeft=32;
 //定义缓慢动画的初始值
 var header=32;
 //用于定义当鼠标点击时的初始位置
 var currentLeft=32;
 for(var i=0;i<liList.length;i++){
  //鼠标放上事件
  liList[i].onmouseover=function(){
  //获取目标距离
  liLeft = this.offsetLeft+this.offsetWidth/2-pic.offsetWidth/2;
  }
  //鼠标移除事件
  liList[i].onmouseout=function(){
  //当鼠标移除某个li的时候把目标距离改为初始状态
  liLeft=currentLeft;
  }
  //鼠标点击事件
  liList[i].onclick=function(){
  currentLeft=this.offsetLeft+this.offsetWidth/2-pic.offsetWidth/2;
  }
 
 }
 //定义缓慢动画
 setInterval(function(){
  header = header + (liLeft-header)/10;
  pic.style.left = header + 'px';
 },20);
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery的链式调用浅析
Dec 03 Javascript
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
JQuery中dataGrid设置行的高度示例代码
Jan 03 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
JavaScript实现新年倒计时效果
Nov 17 #Javascript
JS实现倒计时图文效果
Nov 17 #Javascript
javaScript实现游戏倒计时功能
Nov 17 #Javascript
Javascript实现时间倒计时功能
Nov 17 #Javascript
Javascript实现秒表倒计时功能
Nov 17 #Javascript
js实现简单模态框实例
Nov 16 #Javascript
js实现搜索栏效果
Nov 16 #Javascript
You might like
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
班委竞选演讲稿
2014/04/28 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
孔庙导游词
2015/02/04 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
golang 实现并发求和
2021/05/08 Golang
python基础之函数的定义和调用
2021/10/24 Python