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字典探测用户名工具
Oct 05 Javascript
动态调用CSS文件的JS代码
Jul 29 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
javascript ajax的5种状态介绍
Aug 18 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
浅析JavaScript声明变量
Dec 21 Javascript
全面解析vue中的数据双向绑定
May 10 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
js canvas实现五子棋小游戏
Jan 22 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
我的论坛源代码(六)
2006/10/09 PHP
浅析PHP 按位与或 (^ 、&amp;)
2013/06/21 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
element中的$confirm的使用
2020/04/26 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
Python 实现简单的电话本功能
2015/08/09 Python
itchat接口使用示例
2017/10/23 Python
python中while和for的区别总结
2019/06/28 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
烹饪自我鉴定
2014/03/01 职场文书
学校节水倡议书
2015/04/29 职场文书
JavaScript原型链详解
2021/11/07 Javascript
德生2P3收音机开箱评测
2022/04/30 无线电