实现思路:

  1. 主要使用定时函数setInterval()来实现动画效果
  2. 可以将动画封装成一个函数,这样可以多个元素调用,不用重复写
  3. 动画函数接收参数- - -元素对象、目标偏移量、回调函数
    ①函数里添加一个定时函数,给定时函数一个名字,后面清除定时函数要使用定时函数名
    ②定时函数里面处理程序:
    a. 给一个固定的每步移动值,设置元素对象的偏移量匀速变化- - -eg: obj.style.left = obj.offsetLeft + 5 + ‘px’;
    b. 判断偏移量是否达到目标值,达到的话停止动画- - -
    clearInterval(obj.timer);
    并且在动画停止时判断是否存在回调函数,有回调函数的话执行回调函数
  4. 在动画函数的最前面添加清除定时器函数,清除之前的动画影响- - -clearInterval(obj.timer);
    有时需要点击按钮后,触发动画这种,没有添加清除的话,重复点击按钮,动画效果会叠加,越来越快
  5. 也可以将动画函数封装到js文件中进行引用

小提示:以上只是一种方法,不同动画效果根据所需进行调整实现方法

代码示例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>匀速动画</title><style>.box {position: relative;width: 1000px;margin-top: 20px;}.xiaohuli {position: absolute;top: 0;left: 0;width: 150px;height: 150px;}.pikaqiu {position: absolute;top: 150px;left: 0;width: 200px;height: 150px;}</style>
</head><body><button class="btn1">点击移动小狐狸</button><button class="btn2">点击移动皮卡丘</button><div class="box"><img src="data:images/小狐狸.jpg" alt="" class="xiaohuli"><img src="data:images/皮卡丘.jpg" alt="" class="pikaqiu"></div><script>var btn1 = document.querySelector('.btn1');var btn2 = document.querySelector('.btn2');var xiaohuli = document.querySelector('.xiaohuli');var pikaqiu = document.querySelector('.pikaqiu');btn1.addEventListener('click', function() {animate(xiaohuli, 300);})btn2.addEventListener('click', function() {animate(pikaqiu, 450);})// 动画函数     obj动画对象, target目标左偏移量, callback回调函数function animate(obj, target, callback) {clearInterval(obj.timer);obj.timer = setInterval(function() {obj.style.left = obj.offsetLeft + 5 + 'px';if (obj.offsetLeft >= target) {// 停止动画clearInterval(obj.timer);// 如果有回调函数,执行回调函数if (callback) {callback();}}}, 30);}</script>
</body></html>

页面效果:

javascript-匀速动画相关推荐

  1. JavaScript动画:offset和匀速动画详解(含轮播图的实现)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. offset简介 我们知道,三大家族包括:offset/scroll/c ...

  2. JavaScript之动画特效

    一.PC端网页特效 1.1.元素偏移量offset系列 1.1.1.offset概述 offset翻译过来就是偏移量,使用offset系列相关属性可以动态的得到该元素的位置(偏移).大小等. 1.获得 ...

  3. 原生JavaScript中动画与特效的实现原理

    现如今,许多页面上均有一些动画效果.适当的动画效果可以在一定程度上提高页面的美观度,具有提示效果的动画可以增强页面的易用性. 实现页面动画的途径一般有两种. 一种是通过操作JavaScript间接操作 ...

  4. js简单动画:匀速动画、缓动动画、多物体动画以及透明度动画

    主要实现以下几种简单的动画效果(其实原理基本相同): 1.匀速动画:物体的速度固定 2.缓动动画:物体速度逐渐变慢 3.多物体动画 4.透明度动画 效果实现: 1.匀速动画(以物体左右匀速运动为例) ...

  5. JavaScript制作动画

    JavaScript制作动画 <!DOCTYPE html> <html> <style> #container {width: 400px;height: 400 ...

  6. 聊聊使用 JavaScript 做动画出现卡顿的原因

    前段时间在使用 JavaScript 做动画的时候发现做出来的动画会出现卡顿的现象,今天我们主要就来聊一下卡顿的原因以及如何解决这个问题. 使用定时器实现动画出现卡顿的原因 主要原因是浏览器无法确定定 ...

  7. 原生JS实现PC端无缝滚动轮播图、匀速轮播图、匀速动画

    offset家族的了解 1.offsetHeight:元素的offsetHeight是一种元素CSS高度的衡量标准,包括元素的边框.内边距和元素的水平滚动条(如果存在且渲染的话),不包含:before ...

  8. 使用gsap javascript进行动画和React

    If there's one thing I've learned from showing my websites to non-technical friends and family it's ...

  9. 匀速动画VS缓动动画(超详细)

    文章目录 匀速动画 匀速动画案例描述 匀速动画案例图示 HTML+CSS 匀速动画JS代码 匀速动画JS代码改进----函数封装 缓动动画 缓动动画案例描述 缓动动画案例图示 HTML+CSS 缓动动 ...

  10. javascript实现动画的联动

    最近在做一个网站的时候用到了图片联动的效果,然后觉得不错,就把其中图片联动的部分copy出来分享一下,其中包含图片的左右滚动,自定义滚动条,滚动条控制图片的滚动. html部分: <!DOCTY ...

最新文章

  1. 字符编码简介 ANSI Unicode Unicode big endian UTF-8
  2. Office SharePoint Server 2007 (Beta2) 管理、部署文档
  3. 听易中天品三国---看孔融,杨修之死
  4. LeetCode-剑指 Offer 28. 对称的二叉树
  5. servlet容器_Tomcat 容器与servlet的交互原理
  6. go语言一天入门(上)
  7. 虚拟化运行[OpenStack] VMWare产品介绍
  8. svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件
  9. MAC VSCode Go代码第一次运行配置
  10. kubernetes视频教程笔记 (26)-集群调度-节点亲和性
  11. Webgrid参数格式
  12. Mobileye上演IPO生死时速
  13. GlobalMapper20如何根据EPSG代号生成prj文件
  14. word插入页眉图片
  15. Java 应用程序,该程序中有 3 个类:Triangle、T rapezium 和 Circle,分别用来 表示三角形、梯形和圆形。
  16. 信用卡怎么付款给PayPal?
  17. 使用mybatis的逆向工程易出现的错误
  18. pymysql模块安装后,import pymysql找不到?
  19. 苹果虚拟机和双系统的区别 苹果虚拟机怎么安装
  20. 什么是物联卡,物联卡注意事项

热门文章

  1. 代理商丨thinkcell是一款功能强大的图表创建工具
  2. 删除的文件夹不在回收站中如何恢复呢?
  3. LWN:split-lock用户应该受到多重的惩罚?
  4. spring boot 2.1学习笔记【十八】reactor3 响应式编程
  5. anaconda换源和pip换源
  6. 今天是不是我最倒霉的一天.
  7. 数据结构作业--计算器(用中缀表达式实现表达式树)
  8. 从智能家居到智慧办公,HarmonyOS展现出越来越强大的全场景连接能力
  9. 根据当前日期获取前一天日期-小工具
  10. 清华3名博士生,随导师跳槽南科大!导师跳槽换导师是下下策?