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 相关文章推荐
Js基础学习资料
Nov 23 Javascript
jQuery性能优化技巧分析
Feb 20 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
js实现上传图片预览方法
Oct 25 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 Javascript
javascript面向对象程序设计实践常用知识点总结
Jul 29 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
利用JavaScript模拟京东按键输入功能
Dec 01 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
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
解析php常用image图像函数集
2013/06/24 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
js解决movebox移动问题
2016/03/29 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
vue实例的选项总结
2020/06/09 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python 深入理解yield
2008/09/06 Python
Python魔术方法详解
2015/02/14 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Python requests模块cookie实例解析
2020/04/14 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
农民工讨薪标语
2014/06/26 职场文书
践行三严三实心得体会
2014/10/13 职场文书
如何写辞职信
2015/05/13 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL