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 相关文章推荐
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
javascript学习笔记(三) String 字符串类型介绍
Jun 19 Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
使用jQuery的attr方法来修改onclick值
Jul 07 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
详谈jQuery中的一些正则匹配表达式
Mar 08 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
Sep 20 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
nginx下安装php7+php5
2016/07/31 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
js的回调函数详解
2015/01/05 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
简单的Python人脸识别系统
2020/07/14 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
大学四年个人的自我评价
2014/02/26 职场文书
地方白酒代理协议书
2014/10/25 职场文书
太空授课观后感
2015/06/17 职场文书
给朋友的赠语
2015/06/23 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle