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 相关文章推荐
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
jquery实现图片预加载
Dec 25 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
May 31 Javascript
vue发送websocket请求和http post请求的实例代码
Jul 11 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 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
精通php的十大要点(上)
2009/02/04 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
PHP多文件上传实例
2015/07/09 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
vue组件的写法汇总
2018/04/12 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
react 生命周期实例分析
2020/05/18 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
python下载微信公众号相关文章
2019/02/26 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
自学python用什么系统好
2020/06/23 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
公务员培训心得体会
2013/12/28 职场文书
公司承诺书怎么写
2014/05/24 职场文书
四风问题查摆材料
2014/08/25 职场文书
政风行风评议工作总结
2014/10/21 职场文书
项目战略合作意向书
2015/05/08 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技