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 相关文章推荐
使用jquery实现select添加实现后台权限添加的效果
May 28 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 Javascript
小程序实现列表删除功能
Oct 30 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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代码审核的详细介绍
2013/06/13 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
ext jquery 简单比较
2010/04/07 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
python字典多条件排序方法实例
2014/06/30 Python
常见python正则用法的简单实例
2016/06/21 Python
Django csrf 验证问题的实现
2018/10/09 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
八一建军节部队活动方案
2014/02/04 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
高一语文教学反思
2016/02/16 职场文书
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android