知识点

  1. 一般实现动画的两种方式,定位和margin-left

运行效果


点击开始开始运动

代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#box{height: 100px;width: 100px;background-color: red;}</style>
</head>
<body>
<button id="btn">开始动画</button>
<div id="box"></div>
<script>window.addEventListener('load',function (ev) {// 1. 获取需要的标签var btn = document.getElementById('btn');var box = document.getElementById('box');var intervalID = null, begin = 0, step = 50, target = 600;// 2. 事件触发btn.addEventListener('click',function (ev1) {// 2.1 清除定时器clearInterval(intervalID);// 2.2 设置定时器intervalID = setInterval(function () {// 改变起始值begin += step;// 判断if (begin >= target){begin = target;clearInterval(intervalID);}// 改变盒子box.style.marginLeft = begin + 'px';}, 50);});});
</script>
</body>
</html>

封装成函数的时候,根据不同人的思想,可以有不同的封装方式。

封装版本1.0

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#box{height: 100px;width: 100px;background-color: red;}</style>
</head>
<body>
<button id="btn">开始动画</button>
<div id="box"></div>
<script>window.addEventListener('load',function (ev) {linearAnimation('btn','box',50,800)});function linearAnimation(btnID, boxID, step, target){var btn = document.getElementById(btnID);var box = document.getElementById(boxID);var intervalID = null, begin = 0, step_len = step||0 ;btn.addEventListener('click',function (ev1) {clearInterval(intervalID);intervalID = setInterval(function () {begin += step_len;if (begin >= target){begin = target;clearInterval(intervalID);}box.style.marginLeft = begin + 'px';}, 50);});}
</script>
</body>
</html>

封装版本2.0

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#box{height: 100px;width: 100px;background-color: red;}</style>
</head>
<body>
<button id="btn">开始动画</button>
<div id="box"></div>
<script>window.addEventListener('load',function (ev) {document.getElementById('btn').onclick = function (ev1) {linearAnimation('box',50,800);}});function linearAnimation( boxID, step, target){var box = document.getElementById(boxID);var intervalID = null, begin = 0, step_len = step||0 ;clearInterval(intervalID);intervalID = setInterval(function () {begin += step_len;if (begin >= target){begin = target;clearInterval(intervalID);}box.style.marginLeft = begin + 'px';}, 50);}
</script>
</body>
</html>

Javascript特效:简单的匀速平移动画相关推荐

  1. 原生JavaScript实现简单平移动画

    1. 知识点 : 计时器 (serInterval  &&  clearIntreval ) js获取到CSS样式 (getComputedStyle  &&  cur ...

  2. Javascript特效之动画下拉效果

    Javascript特效之动画下拉效果 今天来看看怎么实现好看的动画下拉框效果. 效果图: 点击按钮会呈现动画效果下拉获取缩回. 实现思路: 就是在div里面加一个p元素存放文字.在点击按钮是使用jq ...

  3. Android学习笔记——用ObjectAnimator平移动画仿微信表情雨的简单实现

    最近需要实现类似微信聊天界面输入文字命中关键字出现Emoji 表情雨的动画效果,自己试着实现了一下,主要就是用 ObjectAnimatior 的 平移 动画,用随机函数控制每个Emoji 的 横,纵 ...

  4. 11种控制内容展示的JavaScript特效和技巧

    交付信息结构是一个交互式用户界面所需要完成的首要任务.更直观的布局结构设计,能使用户更好的理解内容. 不管你想要介绍的是什么样的内容,你都可以以更加互动和更加适应的方式去呈现现它.本文里面,我们为你收 ...

  5. 个人HTML期末大作业~ 个人网页(HTML+CSS)6页面带下拉特效~简单带表格带设计说明 ~学生网页设计作业源码

    HTML期末大作业~ 个人网页6页面带下拉特效~简单带表格带设计说明 ~学生网页设计作业源码 作品介绍 下面介绍一下我的个人小网站吧,我的网站背景稍微单调一点白色,主要个人比较喜欢白色了,布局上面使用 ...

  6. Javascript特效之删除内容效果

    Javascript特效之删除内容效果 今天分享一个网页经常会用到的删除内容效果即想列表一样的每列数据实现单列删除效果. 效果图: 点击右上角的X后该内容会慢慢删除. 实现思路:实际上很简单,就是在该 ...

  7. Android平移补间动画,Android 补间动画之平移动画TranslateAnimation

    Android动画系列 博客导航: 1.介绍: Android补间动画之平移动画,在实际的开发过程中,其实有好多地方需要用到平移动画,这是对于平移动画的简单介绍. 2.属性 duration 时间 f ...

  8. java script特效_通过JavaScript特效控制内容展示的11种方法

    通过JavaScript特效控制内容展示的11种方法 交互信息结构是一个交互式用户界面所需要完成的首要任务.更直观的布局结构设计,能使用户更好的理解内容.以下是百分网小编搜索整理的通过JavaScri ...

  9. android image 位移动画_「translateanimation」Android 补间动画之平移动画TranslateAnimation - seo实验室...

    translateanimation 博客导航: 1.介绍: Android补间动画之平移动画,在实际的开发过程中,其实有好多地方需要用到平移动画,这是对于平移动画的简单介绍. 2.属性 durati ...

  10. Activity平移动画

    Activity平移动画 效果图 添加动画文件 在res下添加anim文件夹,在anim下添加几个动画文件,分别是进入和退出的动画时间和移动距离,属性很简单,一看就懂,不磨叽了. tran_next_ ...

最新文章

  1. plt.figure(figsize(x,y))设置后后续程序都跟着改变,如何处理?走破解它!
  2. Microsoft Visual Studio 2010 Load Test Feature Pack安装排错
  3. 数据科学家访谈录 百度网盘_您应该在数据科学访谈中向THEM提问。
  4. LC_ALL: cannot change locale (en_US.UTF8)问题解决
  5. Leetcode-二叉搜索树最近公共祖先
  6. React中diff算法的理解
  7. 学习 | Spring Cloud Config 从入门到精通
  8. uitableView group模式下的间距问题
  9. ms sql server 系统表详细说明
  10. luogu P1379 八数码难题(A*算法入门详细讲解)
  11. 算法设计与分析期末复习题(史上最详细)
  12. SpringBoot启动流程原理+自动装配原理
  13. searchbar.wxss源代码
  14. 自然语言处理顶会 ACL2019论文接收列表
  15. 机器学习判定红楼梦后40回是否曹雪芹所写
  16. 局部边缘保持滤波(LEP)高动态范围图像HDR压缩 matlab程序(一)
  17. Freeswitch 对接 unimrcpserver ASR调用
  18. 计算机为何要用三级储存体系,计算机三级存储体系(1).ppt
  19. 关于revision 的cover letter
  20. 小米10s哈曼卡顿设置方法分享

热门文章

  1. 2. Browser 对象 - Window 对象(2)
  2. 应用安全-Web安全-SSRF攻防
  3. 学习ARM的一些基本知识,个人整理
  4. Java8 Base64
  5. Git_Eclipse:[2]Git初始化配置
  6. background-size属性
  7. 书柜的尺寸(bzoj 1933)
  8. Android 高仿微信支付密码输入控件
  9. 运算符重载,输出流运算符重载
  10. 2011-4-1 live the lie until the lie becomes your life