js实现带简单弹性运动的导航条


Posted in Javascript onFebruary 22, 2017

晚上跟着视频敲了下 弹性菜单的代码,先记下来

效果如下:

js实现带简单弹性运动的导航条

代码如下:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
 *{
  margin:0;
  padding:0;
 }
 .ul1{
  width:450px;
  height:30px;
  margin:20px auto;
  position:relative;
 }
 li{
  list-style:none;
  line-height:30px;
  height:30px;
  width:100px;
  color:orange;
  text-align:center;
  float:left;
  margin-right:5px;
  border:1px soli #000;
  background-color:red;
 }
 .mark{
  position:absolute;
  left:0;
  top:0;
  overflow:hidden;
 }
 .mark ul{
  width:450px;
  position:absolute;
  left:0;
  top:0;
 }
 .mark ul li{
  color:#fff;
  background-color:deepskyblue;
 }
 </style>
</head>
<body>
<ul class="ul1">
 <li class="mark">
 <ul>
  <li>首页</li>
  <li>论坛</li>
  <li>视频</li>
  <li>课程</li>
 </ul>
 </li>
 <li class="box">首页</li>
 <li class="box">论坛</li>
 <li class="box">视频</li>
 <li class="box">课程</li>
</ul>
</body>
<script>
 window.onload = function(){
 var oMark = document.querySelector('.mark');
 var oBox = document.querySelectorAll('.box');
 var childUl = oMark.querySelector('ul');
 var timer = null;
 var timer2 = null;//延迟定时器,100毫秒人的眼睛是察觉不出来的
 var iSpeed = 0;
 for (var i=0;i<oBox.length;i++){
  oBox[i].onmouseover = function(){
  clearTimeout(timer2);
  startMove(this.offsetLeft);
  };
  oBox[i].onmouseout = function(){
  timer2 = setTimeout(function(){
   startMove(0);
  },100);

  };
 }
 oMark.onmouseover = function(){
  clearTimeout(timer2);
 };
 oMark.onmouseout= function(){
  timer2 = setTimeout(function(){
  startMove(0);
  },100);
 };
 function startMove(iTarget){
  clearInterval(timer);
  timer = setInterval(function(){
  iSpeed += (iTarget -oMark.offsetLeft)/5;
  iSpeed *= 0.75;
  if(Math.abs(iSpeed)<=1 && Math.abs(iTarget -oMark.offsetLeft)<=1){
   clearInterval(timer);
   oMark.style.left = iTarget + 'px';
   childUl.style.left = -iTarget + 'px';
   iSpeed = 0;
  }else {
   oMark.style.left = oMark.offsetLeft + iSpeed +'px';
   childUl.style.left = -oMark.offsetLeft +'px';
  }
  },30);
 };
 };
</script>
</html>

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

Javascript 相关文章推荐
JavaScript 学习笔记(九)call和apply方法
Jan 11 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
Jquery 实现弹出层插件
Jan 28 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
jQuery的promise与deferred对象在异步回调中的作用
May 03 Javascript
JavaScript实战(原生range和自定义特效)简单实例
Aug 21 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 Javascript
vue单元格多列合并的实现
Nov 26 Vue.js
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 #Javascript
javascript 网页进度条简单实例
Feb 22 #Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 #Javascript
js实现PC端根据IP定位当前城市地理位置
Feb 22 #Javascript
纯JS实现轮播图
Feb 22 #Javascript
javascript 操作cookies详解及实例
Feb 22 #Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 #Javascript
You might like
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
js验证表单第二部分
2006/11/25 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
python redis存入字典序列化存储教程
2020/07/16 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
自我鉴定怎么写
2013/12/05 职场文书
检察官就职演讲稿
2014/01/13 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
小学综合实践活动总结
2014/07/07 职场文书
2015年超市工作总结
2015/04/09 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
Python 实现Mac 屏幕截图详解
2021/10/05 Python