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 相关文章推荐
JS俄罗斯方块,包含完整的设计理念
Dec 11 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
jquery实现table鼠标经过变色代码
Sep 25 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php 获取完整url地址
2008/12/20 PHP
PHP 多进程 解决难题
2009/06/22 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
Python用GET方法上传文件
2015/03/10 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
图文详解WinPE下安装Python
2016/05/17 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
小学教师师德师风演讲稿
2014/08/22 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
初二学生评语大全
2014/12/26 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
医德医风学习心得体会
2016/01/25 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android