js实现带缓动动画的导航栏效果


Posted in Javascript onJanuary 16, 2017

 话不多说,请看实例代码:

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8">
  <style type="text/css">
  ul,li { padding: 0; margin: 0; }
  li { list-style: none; }
   #box{
   height: 48px;
   width: 900px;
   background-color: #459DF5;
   margin: 50px auto;
   position: relative;
   }
   #caution {
   width: 150px;
   height: 48px;
   background-color: #4B92D8;
   position: absolute;
   top: 0;
   left: 0;
   }
 #list {
 position: absolute;
 }
   #list li {
   width: 150px;
   height: 48px;
   float: left;
   color: #fff;
   font: 500 20px/48px "微软雅黑";
   text-align: center;
   cursor: pointer;
   }
  </style>
  <script type="text/javascript">
   window.onload = function(){
   //获取ul ID
   var oUl = document.getElementById("list");
   // 获取span ID
   var caution = document.getElementById("caution");
   //获取ul 所有孩子
   var aLi = oUl.children;
   //定时器管理
   var timer = null;
   //缓动
   var leader = 0;
   var target = 0;
    //停留
    var current = 0;
   for(var i = 0;i<aLi.length;i++){
     //鼠标移动
   aLi[i].onmouseover = function(){
      //关闭定时器
   clearInterval(timer);
      //获取当前的left值
   target = this.offsetLeft;
      //开启定时器
   timer = setInterval(autoCaution,20);   
   }
     //鼠标点击
     aLi[i].onmousedown = function(){
      //清楚所有高亮的文字
      for(var j = 0;j<aLi.length;j++){
       aLi[j].style.color = "#fff"; 
      }
      //当前点击栏变为红色
      this.style.color = "#ccc";
      //提示框
      current = this.offsetLeft;
      caution.style.left = current+"px";      
     }
   }
    //鼠标离开
   oUl.onmouseout = function(){
     //关闭定时器
     clearInterval(timer);
     target = current;
     timer = setInterval(autoCaution,20);
   }
   //缓动动画
   function autoCaution(){   
   leader = leader +(target - leader) /10;
   caution.style.left = leader+"px";
   }
   }
  </script>
 </head>
 <body>
  <div id="box">
  <span id="caution"></span>
  <ul id="list">
  <li>首页</li>
  <li>公司简介</li>
  <li>企业文化</li>
  <li>招贤纳士</li>
  <li>企业论坛</li>
  </ul>
  </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript之学会吝啬 精简代码
Apr 25 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
js实现select跳转功能代码
Oct 22 Javascript
Javascript学习指南
Dec 01 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
学习JavaScript设计模式之观察者模式
Apr 22 Javascript
JavaScript与java语言有什么不同
Sep 22 Javascript
详解Vue 开发模式下跨域问题
Jun 06 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
el-select数据过多懒加载的解决(loadmore)
May 29 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 #Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 #Javascript
JavaScript日期选择功能示例
Jan 16 #Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 #Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 #Javascript
Node.js中用D3.js的方法示例
Jan 16 #Javascript
JavaScript实现的select点菜功能示例
Jan 16 #Javascript
You might like
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP脚本的10个技巧(3)
2006/10/09 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
PHP实现递归的三种方法
2020/07/04 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
javascript自执行函数
2017/02/10 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
面向对象编程的优势是什么
2015/12/17 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
口腔医学技术应届生求职信
2013/11/09 职场文书
企业申诉管理制度
2014/01/30 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript