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 相关文章推荐
提高网站信任度的技巧
Oct 17 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
Node.js编码规范
Jul 14 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
Mar 10 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
如何实现js拖拽效果及原理解析
May 08 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
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
详解js异步文件加载器
2016/01/24 PHP
PHP chop()函数讲解
2019/02/11 PHP
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
JavaScript实现点击切换功能
2021/01/27 Javascript
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python正则表达式使用经典实例
2016/06/21 Python
python字符串,数值计算
2016/10/05 Python
python机器学习实现决策树
2019/11/11 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
学校后勤人员职责
2013/12/27 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
会计学专业求职信
2014/07/17 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
商务考察邀请函模板
2015/02/02 职场文书
客房服务员岗位职责
2015/02/09 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
工作服管理制度范本
2015/08/06 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang