js实现缓动动画


Posted in Javascript onNovember 25, 2020

本文实例为大家分享了js实现缓动动画的具体代码,供大家参考,具体内容如下

js实现缓动动画

利用定时器来控制元素的offsetLeft的值,offsetLeft = 开始位置 + (最终位置 - 开始位置)* 缓动系数

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>

 <style>
 * {
  margin: 0;
  padding: 0;
  border: none;
  list-style: none;
 }

 body {
  background-color: pink;
 }

 #nav {
  width: 900px;
  height: 63px;
  background: url("images/doubleOne.png") no-repeat right center #fff;
  margin: 0 auto;
  margin-top: 50px;
  border-radius: 5px;
  position: relative;
 }

 #nav ul {
  line-height: 70px;
 }

 #nav ul li {
  float: left;
  height: 63px;
  width: 88px;
  text-align: center;
  cursor: pointer;
  position: relative;
 }

 #t_mail {
  width: 88px;
  height: 63px;
  background: url("images/tMall.png") no-repeat;
  position: absolute;
 }
 </style>
</head>
<body>
 <nav id="nav">
 <span id="t_mail"></span>
  <ul>
  <li>双11狂欢</li>
  <li>服装会场</li>
  <li>数码家电</li>
  <li>母婴童装</li>
  <li>手机会场</li>
  <li>美妆会场</li>
  <li>家居建材</li>
  <li>进口会场</li>
  <li>飞猪旅行</li>
  </ul>
 </nav>

 <script>
 window.onload = function () {
  var nav = $('nav');
  var t_mall = nav.children[0];
  var ul = nav.children[1];
  var allLis = ul.children;
  var beginX = 0;

  for (var i = 0; i < allLis.length; i++) {
  var li = allLis[i];
  li.onmouseover = function () {
   end = this.offsetLeft;
  }

  li.onmousedown = function () {
   beginX = this.offsetLeft;
  }

  li.onmouseout = function () {
   end = beginX;
  }
  }

  var begin = 0, end = 0;
  setInterval(function () {
  begin = begin + (end - begin) / 10;
  t_mall.style.left = begin + 'px';
  }, 10)

  function $(id) {
  return typeof id ? document.getElementById(id) : null;
  }
 }
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
摘自启点的main.js
Apr 20 Javascript
js文件中调用js的实现方法小结
Oct 23 Javascript
js 判断上传文件大小及格式代码
Nov 13 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
js数组的操作指南
Dec 28 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
JavaScript中的定时器之Item23的合理使用
Oct 30 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 Javascript
AngularJS国际化详解及示例代码
Aug 18 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
Vue CLI3中使用compass normalize的方法
May 30 Javascript
JavaScript实现缓动动画
Nov 25 #Javascript
Vue3配置axios跨域实现过程解析
Nov 25 #Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 #Vue.js
JavaScript实现网页动态生成表格
Nov 25 #Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 #Vue.js
JavaScript实现HTML导航栏下拉菜单
Nov 25 #Javascript
vue打开其他项目页面并传入数据详解
Nov 25 #Vue.js
You might like
网页中的图片的处理方法与代码
2009/11/26 Javascript
JavaScript类库D
2010/10/24 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
进一步理解Python中的函数编程
2015/04/13 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
关于Python的一些学习总结
2018/05/25 Python
python构建指数平滑预测模型示例
2019/11/21 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
高考考python编程是真的吗
2020/07/20 Python
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
实习评语
2013/12/16 职场文书
经典大学生求职信范文
2014/01/06 职场文书
个人公开承诺书
2014/03/28 职场文书
数学教育专业求职信
2014/07/22 职场文书
入党函调证明材料
2014/12/24 职场文书
家长给老师的感谢信
2015/01/20 职场文书
房屋产权证明书
2015/06/19 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers