javascript实现左右缓动动画函数


Posted in Javascript onNovember 25, 2020

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

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <link rel="stylesheet" href="bootstrap-4.4.1.css" >
 <style>
 
 .box{
 width: 100px;
 height: 100px;
 background-color: chartreuse;
 position:absolute;
 }
 </style>
 </head>
 <body>

 <button class="btn1">移动400px</button>
 <button class="btn2">移动800px</button>
 <div class="box"></div>

 <script>

 let btn1 = document.querySelector('.btn1');
 let btn2 = document.querySelector('.btn2');
 let box = document.querySelector('.box');

 btn1.onclick = function(){
 animate(box,400);
 }

 btn2.onclick = function(){
 animate(box,800);
 }

 // 缓动动画
 function animate(element,target){
 // 清除定时器
 clearInterval(element.timeId);

 element.timeId = setInterval(function(){
  // 获取元素当前的位置
  let current = element.offsetLeft;
  // 当current越大,step越小,先快后慢
  let step = (target - current) / 10;
  // 当step大于0时,step向上取整,否则,step向下取整
  step = step > 0 ? Math.ceil(step) : Math.floor(step);
  current += step;
  element.style.left = current + 'px';
  // 不用担心到达不了目标位置,因为step最小达到1
  if(current == target){
  clearInterval(element.timeId);
  }
  console.log("目标位置:" + target + "当前位置:" + current + "每次移动的步数:" + step);
 },20);
 }

 </script>
 
 </body>
</html>

javascript实现左右缓动动画函数

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

Javascript 相关文章推荐
Google AJAX 搜索 API实现代码
Nov 17 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
js获得参数的getParameter使用示例
Feb 26 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
Apr 23 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
js刷新页面location.reload()用法详解
Dec 09 Javascript
详解JavaScript 高阶函数
Sep 14 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
Oct 23 Javascript
JavaScript缓动动画函数的封装方法
Nov 25 #Javascript
js实现缓动动画
Nov 25 #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
You might like
php针对cookie操作的队列操作类实例
2014/12/10 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
Angular实现响应式表单
2017/08/04 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python常用列表数据结构小结
2014/08/06 Python
Python中字典和JSON互转操作实例
2015/01/19 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python基础教程之while循环
2019/08/14 Python
Django使用rest_framework写出API
2020/05/21 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
全民健身日活动方案
2014/01/29 职场文书
企业金融服务方案
2014/06/03 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
css弧边选项卡的项目实践
2023/05/07 HTML / CSS