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 相关文章推荐
Javascript条件判断使用小技巧总结
Sep 08 Javascript
JavaScript中的方法重载实例
Mar 16 Javascript
原生js实现类似弹窗抖动效果
Apr 02 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
jquery分页插件jquery.pagination.js使用方法解析
Apr 01 Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 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 filter_var() 函数 Filter 函数
2012/04/25 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
详解js闭包
2014/09/02 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
Python zip()函数用法实例分析
2018/03/17 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python构建指数平滑预测模型示例
2019/11/21 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
Linux操作面试题
2012/05/16 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
金融事务专业求职信
2014/04/25 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
小学生家长意见
2015/06/03 职场文书
python基础之停用词过滤详解
2021/04/21 Python
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python