Javascript之动画1
我们来做一个小球运动的例子:在这个demo中,我们要求连续多次点击小球“开始”按钮,小球运动速度就越来越快。但是还是不完美存在BUG的,经过多次点击“开始”按钮再点击"停止"按钮就停不下来了,这或许是小球移动事件的冲突吧。
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<canvas id="qiu100" width="500" height="470"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("qiu100");
var q = canvas.getContext("2d");
var dir = 100;
var height = 450;
var width = 500;
var exp = 10;//像素移动的位置
function fff()
{
q.clearRect(0,0,height,width);//清除上一次的痕迹
q.fillStyle = "red";
q.beginPath();
q.arc(50, dir, 35, 0, Math.PI * 2, 2);//球的大小
q.closePath();
q.fill();
dir = dir + exp;
if(dir==0||dir==height)
{
exp = exp * -1;
}
}
</script>
<div id="ds"></div>
<button onclick="tt=setInterval(fff,20);">开始</button>
<button onclick="clearInterval(tt);" >停止</button>
</body>
Javascript之动画1的更多相关文章
- JavaScript实现动画效果
说到JavaScript实现动画效果,不得不想到两个函数,setTimeout和setInterval. setTimeout的常用的使用方法为 setTimeout(callback, delay) ...
- 原生JavaScript中动画与特效的实现原理
现如今,许多页面上均有一些动画效果.适当的动画效果可以在一定程度上提高页面的美观度,具有提示效果的动画可以增强页面的易用性. 实现页面动画的途径一般有两种. 一种是通过操作JavaScript间接操作 ...
- javascript帧动画
前面的话 帧动画就是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成的动画.由于是一帧一帧的画,所以帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容. ...
- javascript之动画特效
JavaScript的动画用的最多的3个api就是setInterval().setTimeout()和requestAnimationFrame()
- "Javascript高性能动画与页面渲染"笔记
前言:好久没翻阅我的gmail邮箱了,午休时就打开看了一下,看到InfoQ推荐的一篇名为“Javascript高性能动画与页面渲染”文章,粗略的看了一下,很赞!讲的很详细,对好些细节讲的都很好,很通俗 ...
- Javascript高性能动画与页面渲染
转自:http://www.infoq.com/cn/articles/javascript-high-performance-animation-and-page-rendering No setT ...
- JavaScript之动画2
在JavaScript动画中,我们调用setInterval函数(setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象),值得注意的是:setInterval它设置的时 ...
- Javascript - Jquery - 动画
动画(Dynamic) JQuery动画必须是在标准文档下使用 否则可能引起动画时抖动或其它不可预知的结果,标准文档格式: <!DOCTYPE html PUBLIC "-//W3 ...
- [转]Javascript高性能动画与页面渲染
No setTimeout, No setInterval 作者 李光毅 发布于 2014年4月30日 如果你不得不使用setTimeout或者setInterval来实现动画,那么原因只能是你需要精 ...
- JavaScript进阶【五】利用JavaScript实现动画的基本思路
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 【M23】考虑使用其他程序库
1.程序库的设计是一种权衡的结果.体积小,速度快往往不能移植.可移植,通用的程序库往往意味着冗余和效率低下. 2.因此,选择程序库的时候,需要进行取舍.比如:iostream和stdio.iostre ...
- android-square-progressbar-legacy
https://github.com/eltld/android-square-progressbar-legacy
- [ES6] 14. Generator -- 1. yield & next()
Generators in ECMAscript 6 are first-class coroutines that produce encapsulated suspended execution ...
- MySql服务器的启动和关闭
转自:http://zqding.iteye.com/blog/1562095 在windows下: 启动: .cd c:\mysql\bin .mysqld --console 关闭: .cd c: ...
- 现有一些开源ESB总线的比較
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,如今已经是百花争鸣的景象了.如今我就对现有的各种开源ESB总线根据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. 一. ...
- IOS触摸事件和手势识别
IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...
- # 36氪开放日 • 杭州 • 11月10日 # 谈谈参会感受
今天下午,第一次去参加了36氪的开放日,虽然站着听有点累,但是也很值得.会上很多创业者都分享和展示了他们的产品,一方面自己了解了一些产品人的故事,另一方面也对如何做产品有了新的认识.参会 ...
- 项目源码--Android迷幻岛屿综合游戏
下载源码 技术要点: 1.游戏开发综合技术 2.多线程机制实现游戏逻辑 3.自定义控件,系统控件等综合图层的使用 4.图层素材动画的综合技术 5.游戏算法的实现 6. OpenGL ES的综合使用 7 ...
- 使用redis做pv、uv、click统计
redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...
- PHP|开发必知的良好实践
过滤.验证.转义 所有这些外部资源都不能完全相信 $_GET $_POST $_REQUEST $_COOKIE $argv php://stdin php://input file_get_cont ...