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 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
javascript 基础篇4 window对象,DOM
Mar 14 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
JavaScript事件对象event用法分析
Jul 27 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
基于vue-cli3和element实现登陆页面
Nov 13 Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 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连接MySQL代码的参数说明
2008/06/07 PHP
php 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
PHP创建XML接口示例
2019/07/04 PHP
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
Python多线程编程简单介绍
2015/04/13 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
python中类的属性和方法介绍
2018/11/27 Python
python3学生名片管理v2.0版
2018/11/29 Python
Python基于百度云文字识别API
2018/12/13 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
《难忘的泼水节》教学反思
2014/02/27 职场文书
大二学习计划书范文
2014/04/27 职场文书
彩妆大赛策划方案
2014/05/13 职场文书