实现如图所示的东西效果(落叶下落):

html代码:

HTML5树叶飘落动画

这是基于webkit的落叶动画

css代码:

body{

background-color: #4E4226;

}

#container {

position: relative;

height: 700px;

width: 500px;

margin: 10px auto;

overflow: hidden;

border: 4px solid #5C090A;

background: #4E4226 url('images/backgroundLeaves.jpg') no-repeat top left;

}

#leafContainer {

position: absolute;

width: 100%;

height: 100%;

}

#message{

position: absolute;

top: 160px;

width: 100%;

height: 300px;

background:transparent url('images/textBackground.png') repeat-x center;

color: #5C090A;

font-size: 220%;

font-family: 'Georgia';

text-align: center;

padding: 20px 10px;

-webkit-box-sizing: border-box;

-webkit-background-size: 100% 100%;

z-index: 1;

}

em {

font-weight: bold;

font-style: normal;

}

#leafContainer > div {

position: absolute;

width: 100px;

height: 100px;

-webkit-animation-iteration-count: infinite;

-webkit-animation-direction: normal;

-webkit-animation-timing-function: linear;

}

#leafContainer > div > img {

position: absolute;

width: 100px;

height: 100px;

-webkit-animation-iteration-count: infinite;

-webkit-animation-direction: alternate;

-webkit-animation-timing-function: ease-in-out;

-webkit-transform-origin: 50% -100%;

}

@-webkit-keyframes fade{

0% { opacity: 1; }

95% { opacity: 1; }

100% { opacity: 0; }

}

@-webkit-keyframes drop{

0% { -webkit-transform: translate(0px, -50px); }

100% { -webkit-transform: translate(0px, 650px); }

}

@-webkit-keyframes clockwiseSpin{

0% { -webkit-transform: rotate(-50deg); }

100% { -webkit-transform: rotate(50deg); }

}

@-webkit-keyframes counterclockwiseSpinAndFlip {

0% { -webkit-transform: scale(-1, 1) rotate(50deg); }

100% { -webkit-transform: scale(-1, 1) rotate(-50deg); }

}

js代码:

const NUMBER_OF_LEAVES = 30;

function init(){

var container = document.getElementById('leafContainer');

for (var i = 0; i < NUMBER_OF_LEAVES; i++) {

container.appendChild(createALeaf());

}

}

function randomInteger(low, high){

return low + Math.floor(Math.random() * (high - low));

}

function randomFloat(low, high){

return low + Math.random() * (high - low);

}

function pixelValue(value){

return value + 'px';

}

function durationValue(value){

return value + 's';

}

function createALeaf(){

var leafDiv = document.createElement('div');

leafDiv.style.top = "-100px";

leafDiv.style.left = pixelValue(randomInteger(0, 500));

leafDiv.style.webkitAnimationName = 'fade, drop';

var fadeAndDropDuration = durationValue(randomFloat(5, 11));

leafDiv.style.webkitAnimationDuration = fadeAndDropDuration + ', ' + fadeAndDropDuration;

var leafDelay = durationValue(randomFloat(0, 5));

leafDiv.style.webkitAnimationDelay = leafDelay + ', ' + leafDelay;

var image = document.createElement('img');

image.src = 'images/realLeaf' + randomInteger(1, 5) + '.png';

var spinAnimationName = (Math.random() < 0.5) ? 'clockwiseSpin' : 'counterclockwiseSpinAndFlip';

image.style.webkitAnimationName = spinAnimationName;

var spinDuration = durationValue(randomFloat(4, 8));

image.style.webkitAnimationDuration = spinDuration;

leafDiv.appendChild(image);

return leafDiv;

}

window.addEventListener('load', init, false);

PS:下面看下html5 canvas处理连续帧图片,下面的代码基于IE8以上

Canvas Demo

var canvas = null;//初始化参数

var img = null;

var ctx = null;

var imageReady = false;

window.onload = function() {

var canvas = document.getElementById("animation_canvas");

canvas.width = canvas.parentNode.clientWidth;

canvas.height = canvas.parentNode.clientHeight;

if (!canvas.getContext) {

console.log("Canvas not supported. Please install a HTML5 compatible browser.");

return;

}

// get 2D context of canvas and draw rectangel

ctx = canvas.getContext("2d");

ctx.fillStyle="black";

ctx.fillRect(0, 0, canvas.width, canvas.height);

console.log(canvas.height);

img = document.createElement('img');

img.src = "images/ab0.png";

img.onload = loaded();

}

//保证只有图像加载后才开始循环动画

function loaded() {

imageReady = true;

setTimeout( update, 1000/3);//添加3帧每秒间隔计时器

}

function redraw() {

ctx.fillStyle="black";

ctx.fillRect(0, 0, 460, 460);

ctx.drawImage(img, 0, 0, 232, 180);

}

//为了让图片以规定的速度动画,我们必须追踪已经经过的时间,然后根据分配给每帧的时间播放帧。基本步骤是:

//1、按每秒几帧设置动画速度(msPerFrame)。

//2、当你循环游戏时,计算一下自最后一帧以后已经经过了多少时间(delta)。

//3、如果已经经过的时间足够把动画帧播完,那么播放这一帧并设置累积delta为0。

//4、如果已经经过的时间不够,那么记住(累积)delta时间(acDelta)。

var frame = 0;

var lastUpdateTime = 0;

var acDelta = 0;

var msPerFrame = 200;

function update() {

requestAnimFrame(update);

var delta = Date.now() - lastUpdateTime;

//console.log(Date.now(),lastUpdateTime);

if (acDelta > msPerFrame){

acDelta = 0;

redraw();

img.src='images/ab'+frame+'.png';

frame++;

if(frame >= 3) frame = 0; //当绘制后且帧推进完,计时器就会重置。

}else{

acDelta += delta;

}

lastUpdateTime = Date.now();

}

//requestAnimFrame的作用基本上就是setTimeout,但浏览器知道你正在渲染帧,所以它可以优化绘制循环,以及如何与剩下的页面回流。

//在某些情况下,setTimeout比requestAnimFrame更好用,特别是对于手机。

//以下是在不同的浏览器上调用requestAnimFrame的情况也不同,标准的检测方法如下:

window.requestAnimFrame = (function(){

return window.requestAnimationFrame ||

window.webkitRequestAnimationFrame ||

window.mozRequestAnimationFrame ||

window.oRequestAnimationFrame ||

window.msRequestAnimationFrame ||

function( callback ){

window.setTimeout(callback, 1000 / 3); //如果requestAnimFrame支持不可用,还是可以用回内置的setTimeout。

};

})();

总结

以上所述是小编给大家介绍的基于HTML5+Webkit实现树叶飘落动画,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

HTMl页面加入落叶下雨动画,基于HTML5+Webkit实现树叶飘落动画相关推荐

  1. HTMl页面加入落叶下雨动画,HTML5和Webkit实现树叶飘落动画

    HTML5和Webkit在一起会实现什么样的动画呢?本文给大家分享一段实例代码给大家介绍基于HTML5+Webkit实现树叶飘落动画效果,需要的朋友参考下吧,希望能帮组到大家. 实现如图所示的东西效果 ...

  2. html 转图片 wekit实现,HTML5和Webkit实现树叶飘落动画

    HTML5和Webkit在一起会实现什么样的动画呢?本文给大家分享一段实例代码给大家介绍基于HTML5 Webkit实现树叶飘落动画效果,需要的朋友参考下吧,希望能帮组到大家. 实现如图所示的东西效果 ...

  3. HTML5实现的树叶飘落动画特效

    以下是一个基于HTML5实现的树叶飘落动画特效: <!DOCTYPE html> <html> <head><title>树叶飘落动画特效</ti ...

  4. html让页面飘树叶的代码,逼真的HTML5树叶飘落动画

    这是一款基于HTML5的树叶飘落动画,树叶都是图片,并非CSS3绘制,但是树叶飘落的动画效果非常逼真.这款HTML5树叶飘落动画是基于webkit内核的,也就是说要在webkit内核的浏览器上才能使用 ...

  5. android 树叶飘落动画,逼真的HTML5树叶飘落动画

    这是一款基于HTML5的树叶飘落动画,树叶都是图片,并非CSS3绘制,但是树叶飘落的动画效果非常逼真.这款HTML5树叶飘落动画是基于webkit内核的,也就是说要在webkit内核的浏览器上才能使用 ...

  6. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

    HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动 ...

  7. HTML5树叶飘落动画

    请使用Chrome浏览器查看本效果. html源代码: Html代码   <!DOCTYPE HTML> <html> <head> <title>HT ...

  8. html画布敲碎的视频,html5 canvas碎纸屑空中飘落动画特效

    特效描述:html5 canvas碎纸屑 空中飘落动画特效.canvas绘制空中飘落的纸屑动画特效. 代码结构 1. HTML代码 "use strict"; var _creat ...

  9. python随风飘落怎么画_树叶飘落动画制作 如何制作树叶飘落的动画?视频画面添加树叶随风飘落的动画效果...

    最近真是有一点秋的凉意了呢~每天早上起床走出房间的时候,就能感觉到有点凉凉的气息,真好,酷暑终于过去了,希望不要再炎热了,啊哈哈.对于秋天,相信大家先想到的就是那种漫天的落叶了吧~那种秋风阵阵,落叶缤 ...

最新文章

  1. bailian 2754八皇后
  2. MobIM仅为开发者提供即时通讯的消息通道服务
  3. ejb 2.0 3.0_Java EE 6测试第I部分– EJB 3.1可嵌入API
  4. web.py框架入门
  5. phpboot使用mysql_PHP MySQL 插入数据
  6. https和http有什么区别
  7. js混淆还原工具_技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】...
  8. 25 个很棒的 Python 脚本合集(迷你项目) - PDF 下载
  9. 图片rar 加密文件
  10. Java实现 LeetCode 108 将有序数组转换为二叉搜索树
  11. 金秋杭州游 只为桂花香
  12. 数字计算lisp_可从计算尺和LISP中汲取教训
  13. solr读取word,pdf
  14. 斐波那契数列求和——C语言(小白版)
  15. 平安科技从 Oracle 迁移到 UbiSQL 的实践
  16. pci和pci_PCI合规性
  17. 服务注册与发现(中)
  18. 荣耀开发者平台全面升级,加强分发场景服务与能力开放
  19. 换根dp(板子整理)
  20. 30天吃掉那只tensorflow之(2):使用 cifar10 数据集来训练网络并测试

热门文章

  1. typechoSEO站点收录插件推荐
  2. Adobe 认证证书怎么考
  3. linux上的网络相关命令行
  4. ASP.Net邮件模板编辑与发送邮件的完美实现
  5. 扣丁软件测试基础知识,苹果无线充电线圈揭秘,iphone8无线充电线圈介绍
  6. 关于Qt中的翻译问题
  7. 使用 Python 自动识别防疫二维码
  8. android-4集成高德地图的搜索和导航功能
  9. [斜率优化] 特别行动队 commando
  10. U-Boot参数设置