教你如何在网页上用利用H5快速实现动画效果

在web开发中,GIF动画效果是随处可见,比如常见的loading加载、人物奔跑的gif图片等等,那么这些都是怎么实现的呢?

其实实现的原理很简单,简而言之,这些所谓的动画都是一帧一帧的图片经过一段时间的间隔做出位移而来的;譬如,我们在PS里面制作GIF动画,首先要把每一帧所需要的图片制作出来,然后再通过导出的方式把GIF图片保存下来;相信会PS的同学,都可以熟练的制作一个基本的GIF动画图片;在web开发中,要实现这样的gif图片,也有很多方法;在这给读者提供一个思路,就是利用html5 canvas实现动画效果。

利用canvas的drawImage把含有帧的图片加载到canvas中去,再结合js实现动画

<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<title>canvas帧--实现动画</title>
<style>
{padding:0;margin:0;}
canvas{display:block;background:white}
</style>
</head>
<body>
<canvas></canvas>
<script>
var imgPic = new Image();
imgPic.src = ‘http://www.cj365.cc/demo/bird/bird.png‘;
var canvas = document.querySelector(‘canvas‘);
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var ctx = canvas.getContext(‘2d‘);
imgPic.onload = function () {
drawImg()
}
var i = 0;
var lastTime = new Date().getTime();
var delatime;
var timer = 0;
function drawImg() {
window.requestAnimationFrame(drawImg);
var now = new Date().getTime();
delatime = now - lastTime;
lastTime = now;
timer += delatime;
if (timer > 200) {
i++;
if (i > 7) i = 0;
timer = 0
}
console.log(delatime)
ctx.drawImage(imgPic, i
140, 0, 140, 85, (canvas.width - 140) / 2, (canvas.height - 85) / 2, 140, 85);
}
</script>
</body>
</html>

以上方法实现的前提是,需要有一张已绘制帧的图片,有了图片才可进行帧的动画;利用该方法可以控制动画的播放、暂停以及帧率

原文地址:http://blog.51cto.com/14071672/2316867

时间: 2024-07-31 07:28:08

教你如何在网页上用利用H5快速实现动画效果的相关文章

JS让网页上文字出现键盘打字的打字效果

一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html> <head> <title>打字效果</title> <meta http-equiv="Content-Type" Content="text/html;charset=gb2312" /> <style

教你破解网页上各种限制(禁止鼠标右击复制等等)一步搞定!

有的网页防止别人直接复制盗取网页内容,设置了复制限制韩国的一些博客网站经常有这样的限制~现在我来教大家怎么用一步破解,不需要在浏览器里设置,一步搞定(博主建议:复制他人内容请注明来源,尊重他们劳动成果!) 来源: http://www.harleygwak.com/日志/教你破解网页上各种限制(禁止鼠标右击复制等等/方法:只要在浏览器地址栏输入以下内容就可以了. javascript:alert(document.onselectstart = document.onbeforecopy = d

将数据库中的信息显示在网页上

用下拉列表的方式输出在网页上,都在php格式里面便可以输出: <body> <?php $db = new mysqli("localhost","root","12345678","heiheihei"); $sql = "select * from student"; $result = $db->query($sql); echo "<select>&qu

css015 定位网页上的元素

css015 定位网页上的元素 一.   定位属性的功能 1.         四中类型的定位 Position: absolute relative fixed static a. 绝对定位 绝对定位通常单位为:px  em  percentage 绝对定位会脱离页面流,相对的是整个浏览器 如果a标签在设定了absolute relative fixed值的b标签中,那么a标签就是性对与b标签定位. b.相对定位 相对定位是相对于当前html流中的当前位置进行定位的. c. 固定定位 Back

CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 3.在一个非浮动元素<div>中存在一个浮动元素,当浮动元素高于元素本身的时候,内容就会溢出<div>中,解决方案如下: A:在</div>介绍之前添加一个换行,并且添加一个类<br class=”clear”/>,之后创建一个样式br.class{clear

如何用 LaunchBar 一键下载网页上的所有文件?

本文标签: Mac效率工具 Mac小工具 MacOS LaunchBar 一键下载网页文件 有时候我们会遇到这种问题,一个页面上挂了好多文档需要下载: 依次点开再按 ? S 或是逐个右击再选择下载都不像是聪明的方法.我们可以通过 Automator 来实现这样的情况下文件的批量下载. 用 Automator 制作下载文件的工作流 启动 Automator,选择新建服务,依次加入如下六个操作模块: 首先先读取当前 Safari 所在页面的网页,接着获取这个网页下的所有网址,对它们进行过滤,过滤内容

jQuery检查某个元素在网页上是否存在

jQuery选择器有比较完善的处理机制,用jQuery获取网页中不存在的元素也不会报错,值得注意的是,利用$('#tt')获取的永远是对象,即使网页上没有此元素.当使用jQuery检查某个元素在网页上面是否存在时,不能使用的方式进行判断: if($('#tt')){ //do something } 应该根据获取到的元素 的长度来进行判断,如下所示: if($('#tt').length>0){ //do something } 或者转化为DOM对象来判断,如下所示: if($('#tt')[0

【Python爬虫】批量抓取网页上的视频

1.为何学python 编程语言方面,本科这几年一直都用C/C++,因为研究生方向与机器学习相关,所以最近大部分时间在学机器学习,看了<机器学习实战>这本书,里面的实例都是用python来写,并且目前来说,对机器学习算法支持得比较多的语言是python,matlab/octave当然也很适合用于机器学习,但是毕竟是学术工具,速度等方面肯定不如python,工业开发还是用python.c++. 总之对于学习机器学习,python以及NumPy库要熟悉. 所以这两天决定学一下python,就找了个

&lt;&lt;&lt; 网页中如何利用原生js和jquery储存cookie

javascript当中的cookie机制,使应用达到了真正的全局变量的要求,cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由JavaScript对其进行控制,而并不是JavaScript本身的性质,由于cookie机制是把信息储存到硬盘,所以他可以用来做全局变量 cookie有关安全性和作用域 1.cookie可能被禁用.当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能:  2.cookie是与浏览器相关的.这