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中valueOf与toString区别浅析
Mar 19 Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 Javascript
jQuery插件windowScroll实现单屏滚动特效
Jul 14 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
Sep 03 Javascript
微信小程序图片左右摆动效果详解
Jul 13 Javascript
vue点击自增和求和的实例代码
Nov 06 Javascript
原生js实现轮播图特效
May 04 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
用 php 编写的日历
2006/10/09 PHP
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
自己的js工具 Event封装
2009/08/21 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
python3中函数参数的四种简单用法
2018/07/09 Python
python下载微信公众号相关文章
2019/02/26 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python实现元素等待代码实例
2019/11/11 Python
python实现批量命名照片
2020/06/18 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
九年级化学教学反思
2014/01/28 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
优秀护士先进事迹
2014/05/08 职场文书
社区班子对照检查材料
2014/08/27 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
优秀大学生自荐信
2015/03/26 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python