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 相关文章推荐
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
JS获取iframe中longdesc属性的方法
Apr 01 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
BootStrap组件之进度条的基本用法
Jan 19 Javascript
js仿微博动态栏功能
Feb 22 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
Vue中的组件及路由使用实例代码详解
May 22 Javascript
antd多选下拉框一行展示的实现方式
Oct 31 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php测试kafka项目示例
2020/02/06 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
html下载本地
2006/06/19 Javascript
不错的JS中变量相关的细节分析
2007/08/13 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
Python 如何批量更新已安装的库
2020/05/26 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
暑假实习求职信范文
2013/09/22 职场文书
美术专业个人自我评价
2014/01/18 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
逃课检讨书
2015/01/26 职场文书
个人优缺点总结
2015/02/28 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
2015年教务工作总结
2015/05/23 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技