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 相关文章推荐
javascript &amp;&amp;和||运算法的另类使用技巧
Nov 28 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
jquery拖拽排序简单实现方法(效果增强版)
Feb 16 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
Apr 20 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
js 图片懒加载的实现
Oct 21 Javascript
swiper实现导航滚动效果
Dec 13 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
php框架Phpbean说明
2008/01/10 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
PHP正则验证Email的方法
2015/06/15 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
Node.js实现数据推送
2016/04/14 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python pip使用超时问题解决方案
2020/08/03 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
业务经理岗位职责
2013/11/11 职场文书
企业授权委托书范本
2014/04/02 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
三方协议书范本
2014/04/22 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
顶岗实习协议书
2015/01/29 职场文书
保护环境的宣传语
2015/07/13 职场文书
《穷人》教学反思
2016/02/19 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
Python 文字识别
2022/05/11 Python