JavaScript 动画_jquery 动画

JavaScript 动画_jquery 动画JavaScript—动画一、动画原理通过定时器setInterval不断移动盒子位置。步骤:获得盒子当前位置;让盒子在当前位置加上1个移动距离;利用定时器不断重复这个操作;结束定时器。注意:元素需要加定位。例:HTML代码:<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″/> <title></title> </head>

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

JavaScript动画

一、动画原理

通过定时器setInterval不断移动盒子位置。

步骤:

  1. 获得盒子当前位置;
  2. 让盒子在当前位置加上1个移动距离;
  3. 利用定时器不断重复这个操作;
  4. 结束定时器。

注意:元素需要加定位。

例:

HTML代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		
	</head>
		<div class="move">
			
		</div>
		<script src="js/js.js"></script>
	</body>
</html>

CSS代码:

.move{ 
   
	width: 100px;
	height: 100px;
	background-color: pink;
	position: absolute;
	left: 0;
}

JS代码:

var div = document.querySelector('.move');		//获取需要移动的元素
var timer = setInterval(function() { 
   			//新建一个定时器
	if (div.offsetLeft >= 400) { 
   				//停止定时器的条件:移动距离大于等于400px时停止
		clearInterval(timer);					//停止定时器
	}
	div.style.left = div.offsetLeft + 1 + 'px';	//定时器执行的操作:每1毫秒移动一个像素
}, 1)

二、简单动画函数封装

注意函数需要传递的2个参数:动画对象移动的距离

function animate(obj,target) { 
   
	var timer = setInterval(function() { 
   
		if (obj.offsetLeft >= target) { 
   
			clearInterval(timer);
		}
		obj.style.left = obj.offsetLeft + 1 + 'px';
	}, 1)
}
var div = document.querySelector('.move');	//获取元素
animate(div,300);							//调用函数

三、给不同元素记录不同定时器

function animate(obj,target) { 
   
	clearInterval(obj.timer);				//一个元素同时只能存在一个定时器
	obj.timer = setInterval(function() { 
   	//给不同元素添加定时器
		if (obj.offsetLeft >= target) { 
   
			clearInterval(obj.timer);
		}
		obj.style.left = obj.offsetLeft + 1 + 'px';
	}, 1)
}

四、缓动效果原理

缓动动画就是让元素运动速度有所变化,如常见的“慢慢停下来”。

思路:

  1. 让盒子每次移动的距离变小,速度就会慢下来;
  2. 核心算法:(目标值 – 现在的位置)/ 10 作为每次移动的距离步长;
function animate(obj,target) { 
   
	clearInterval(obj.timer);
	obj.timer = setInterval(function() { 
   
		var step = (target - obj.offsetLeft) / 10;
		step = step > 0 ? Math.ceil(step) : Math.floor(step);
		if (obj.offsetLeft == target) { 
   
			clearInterval(obj.timer);
		}
		obj.style.left = obj.offsetLeft + step + 'px';
	}, 15)
}

五、动画函数添加回调函数

回调函数原理:函数可以作为一个参数。将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数,这个过程叫做回调

回调函数写的位置:定时器结束位置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181692.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 究竟什么是POJO?

    究竟什么是POJO?     POJO(PlainOldJavaObject)这种叫法是MartinFowler、RebeccaParsons和JoshMacKenzie在2000年的一次演讲的时候提出来的。     我在做J2EE培训中发现我的很多学生问我什么是POJO,后来我在写书(《Spring2初学者实践教材》和《Spring2初学者实践教材》)的时候发现POJO这个概念无法回避。现在网上对于

    2022年5月28日
    73
  • 10种不同画法画平行线怎么画_六边形有几种画法

    10种不同画法画平行线怎么画_六边形有几种画法。1.趋势线:趋势线分快速、中速、慢速,趋势的画法为:上升(下降)趋势线是以向上(下)走势中的低点(高点)与低点(高点)的连线。其中时间跨度越长所构成的支撑作用也越强,而趋势线与K线相交的点位越多,趋势线形成的支撑作用也越强。2.水平线:用前期低点画线,构成再度回落的支撑作用,或者前期低点在后期颇为下跌后再度上升将形成阻力作用。水平线有构成阻力和支撑作用。水平线的画法,一般是用K线实体高点或低点画…

    2026年2月5日
    6
  • windows下使用aspera_vlc windows

    windows下使用aspera_vlc windows资源下载官网资源:https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz环境配置编译环境:Win764位系统VS2015创建一个VS2015项目,应用程序类型使用静态库,注意取消勾选“使用预编译头”;将资源[libiconv-1.16\lib]文件夹下的所有文件,全部复制到第一步创建的工程目录下,并找到config.h….

    2025年5月22日
    4
  • mysql优化 面试_数据库优化工具

    mysql优化 面试_数据库优化工具点赞是一种积极的生活态度!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!而且这个问题就是一个送分题,数据库的优化方案基本就是那些,答案也都是固定的,大家只要好好…

    2025年8月3日
    3
  • Linux磁盘配额

    Linux磁盘配额

    2021年5月31日
    123
  • MediaType介绍

    MediaType介绍MediaType媒体类型:决定浏览器将以什么形式、什么编码对资源进行解析Content-Type:也属于MediaType媒体类型,主要用于在请求头中指定资源的MediaType一、MediaType类型类型描述text/htmlHTML格式text/plain纯文本格式text/xmlXML格式image/gifgif图片格式image/jpegjpg图片格式image/pngpng图片格式application/xhtml+xm

    2022年5月26日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号