js动画学习(一)

一、运动框架实现思路

1.匀速运动(属性值匀速变化)(改变 left, right, width, height, opacity 等);

2.缓冲运动(属性值的变化速度与当前值与目标值的差成正比);

3.多物体运动;

4.任意属性值的变化(用封装函数);

5.链式运动(同一物体完成一系列的运动);

6.多物体同时运动

====================================================

二、简单运动之匀速运动

1 //鼠标移到元素上元素右移,鼠标离开元素回去。

2 var timer="";

3 function Move(speed,locat) {//移动速度,移动终点位置

4     var ob=document.getElementById(‘box1‘);

5     clearInterval(timer);

6     timer=setInterval(function () {

7         if (ob.offsetLeft==locat) {//当前位置到达指定终点,关闭定时器

8             clearInterval(timer);

9         } else {

10            ob.style.left=ob.offsetLeft+speed+‘px‘;

11        }

12     }, 30)

13 }

时间: 2024-08-06 20:00:24

js动画学习(一)的相关文章

【06-23】js动画学习笔记01

1 <html> 2 <head> 3 <style> 4 * { 5 margin:0; 6 padding:0; 7 } 8 #div1{ 9 width:200px; 10 height:200px; 11 background:red; 12 position:relative; 13 left:-200px; 14 top:0; 15 } 16 #div1 span{ 17 width:20px; 18 height:50px; 19 background:s

js动画学习(二)

四.简单动画之缓冲运动 实现速度的缓冲,即不同位置的速度不同,越靠近目标值速度越小,所以速度值与当前值与目标值之差成正比.这里要注意一个问题就是物体在运动中速度是连续变化的,不是按照整数变化的,当物体停止时由于小数的原因,位置可能不会回到原起点,会差一点,所以缓冲运动里变化的速度要取整. 1 //鼠标移到元素上元素右移,鼠标离开元素回去. 2 var timer=""; 3 function Move(locat) {//移动终点位置 4 var ob=document.getElem

js动画学习(四)

前面分别介绍了单独改变单一属性值得动画,从本节起开始介绍多属性封装函数,一个函数搞定多种属性值的改变. 首先介绍一个很重要的函数getStyle(),这个函数返回一个元素的当前属性值.两个形参分别是元素和属性.注意浏览器的兼容性问题. 1 //获得元素样式专用封装函数,返回该属性的当前值 2 function getStyle(obj,attr) { 3 if (obj.currentStyle) {//IE浏览器 4 return obj.currentStyle[attr]; 5 } els

js动画学习(三)

五.多物体变宽 这里面要注意由于物体变多了,需要给每个物体各配备一个定时器,否则如果只有一个定时器的话,当鼠标在不同物体之间快速滑动时,不同的物体就会出现争抢的现象.所以timer前要加obj. 1 function changeWidth(obj,target) {//元素,目标值 2 clearInterval(obj.timer);//清除定时器防止嵌套调用 3 obj.timer=setInterval(function () {//设置定时器 4 var speed=(target-o

js/jquery学习笔记

javascript简介 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言. 不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行 . JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行.解释语言的弱 点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语

JS动画之缓动函数分析及动画库

上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).animate(styles,speed,easing,callback) 原生js使用:张鑫旭同学的文章 缓动函数知识 什么是缓动函数?我的理解是动画参数与数学公式结合的函数. 各流行库缓动函数对比,以easeInQuad为例,如图: Tween.js jQuery.easing GSAP CreateJS

JS入门学习,写一个时钟~

<!-- 耽搁了几天,于是又继续回到JS的学习了~~ 各种头大,加油吧... --> <!doctype html><html><head> <title>数码时钟</title> <meta charset="gb2312"> <style type="text/css"> *{ padding:0; margin:0;} body{background:rgb(0,2

关于JS动画和CSS3动画的性能差异

本文章为综合其它资料所得. 根据Google Developer,Chromium项目里,渲染线程分为main thread和compositor thread.如果CSS动画只是改变transforms和opacity,这时整个CSS动画得以在compositor thread完成(而JS动画则会在main thread执行,然后触发compositor进行下一步操作)在JS执行一些昂贵的任务时,main thread繁忙,CSS动画由于使用了compositor thread可以保持流畅,可

js 动画方法之requestAnimationFrame

js动画实现的方法到现在有三种 1 css3: 通过animattion+keyframes;或 transition 2. setTimeout/setInterval: setTimeout/setInterval:通过递归调用同一方法来不断更新动画元素以达到动起来的效果,动画过度绘制,浪费 CPU 周期以及消耗额外的电能等问题. 3.requestAnimationFrame: requestAnimationFrame:是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用