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的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
第六章之辅组类与响应式工具
Apr 25 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
Vue2.0用户权限控制解决方案
Nov 29 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
Apr 13 Javascript
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
js中的闭包实例展示
Nov 01 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
Sep 24 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邮件类
2007/01/03 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
python ETL工具 pyetl
2020/06/07 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
酒吧副总经理岗位职责
2013/12/10 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
淘宝好评语大全
2014/05/05 职场文书
党支部换届选举方案
2014/05/08 职场文书
公司承诺书格式
2014/05/21 职场文书
学生吸烟检讨书
2014/09/14 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
服务器间如何实现文件共享
2022/05/20 Servers