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 相关文章推荐
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
javascript闭包(Closure)用法实例简析
Nov 30 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
ligerUI---ListBox(列表框可移动的实例)
Nov 28 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
Jul 07 Javascript
微信小程序列表时间戳转换实现过程解析
Oct 12 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
用js实现in_array的方法
2013/11/05 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
StringBuilder和String的区别
2015/05/18 面试题
关于迟到的检讨书
2014/01/26 职场文书
劳动实践课感言
2014/02/01 职场文书
新学期决心书
2014/03/11 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
通讯稿范文
2015/07/22 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python