HTML5动画(一):实现树叶飘落

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

html代码:

<!DOCTYPE html>
<html>
<head>
    <title>HTML5树叶飘落动画</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=500px, initial-scale=0.64">
    <link rel="stylesheet" href="leaves.css" type="text/css">
    <script src="leaves.js" type="text/javascript"></script>
</head>
<body>
    <div id="container">
        <div id="leafContainer"></div>
        <div id="message">
            <em>这是基于webkit的落叶动画</em>
        </div>
    </div>
</body>
</html>

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);

转载地址:http://www.html5tricks.com/css3-fall-leaves.html

时间: 2024-10-26 15:34:23

HTML5动画(一):实现树叶飘落的相关文章

HTML5树叶飘落动画

查看效果:http://keleyi.com/keleyi/phtml/css3/15.htm 请使用Chrome浏览器查看本效果. html源代码: <!DOCTYPE HTML> <html> <head> <title>HTML5树叶飘落动画-柯乐义</title><base target="_blank" href="http://keleyi.com/keleyi/phtml/css3/"

树叶飘落

html <!-- 树叶飘落动画效果 --> <div class="leafbox"> <div class="leafimg1"> <img src="http://ossweb-img.qq.com/images/chanpin/daoju/public/a20160420lol/leaf1.png"> </div> <div class="leafimg2&quo

HTML5动画软件工具编辑器 HTML5动画分类 工具推荐

接下来介绍几款制作HTML5动画的工具,它们可以分为几类: 1.导出canvas动画: Flash CC(13.1).Animation.Radi 2.导出DIV+CSS3动画: HTML5 Maker.Edge Animation.Tumult Hype.Nodefire 3.导出SVG动画: Hippo 基本上所有工具导出的动画都会依赖一个独立的js库,这个库用于解析数据,展示动画.而其中两个工具(Radi和Hippo)就比较突出,它们并不依赖独立js库,而是把必须的最精简的js直接内嵌到H

Flash生成HTML5动画方法

  方法一:利用“swiffy”将Flash转换成HTML5动画. 首先,我们需要下载一款基于“Flash”程序的插件,名称为“swiffy”,这是一款由谷歌推出的一个Flash扩展,可以通过“Flash Professinal”软件直接将Flash源文件转换成HTML5动画. “swiffy”下载地址:http://pan.baidu.com/s/1hqHC4te   下载的“swiffy”程序其扩展名为“mxp”格式,双击此文件即可自动打开“Adobe扩展管理器”并安装“Swiffy”扩展应

Adobe edge animate制作HTML5动画可视化工具(一)

Edge Animate for mac是Adobe最新出品的制作HTML5动画的可视化工具,简单的可以理解为HTML5版本的Flash Pro.在之后的文章中,我会逐一的介绍这款新的HTML5动画神器.这篇文章先说一说如何把Edge Animate制作的HTML5动画作品嵌入到Wordpress中. Adobe Edge Animate的目的是帮助专业设计师制作网页动画乃至简单游戏.目前该工具的重点放在动画引擎上,将增加更多HTML5功能,比如Canvas.HTML5音频/视频标签等.支持An

atitit.html5动画特效----打水漂 ducks_and_drakes

atitit.html5动画特效----打水漂  ducks_and_drakes 1. 原理 1 2. fly jquery插件 1 3. ---------code 2 4. 参考 4 1. 原理 使用多重抛物线的原理即可. . 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax 2. fly jquery插件 script src="jquery.js">

惊艳的HTML5动画特效及源码

今天我们要来分享一些很酷的HTML5动画演示,HTML5的强大之处在于它可以利用canvas的特性来绘制很多普通网页无法完成的图形和动画,canvas就像一块超级画板,在上面不仅可以实现平面图形,而且一些3D动画也非常简单.很多HTML5动画也都基于canvas,一起来看看吧. HTML5/CSS3实现大风车旋转动画 作为今天首款HTML5动画,这款大风车旋转效果的确非常棒,它是用纯CSS3实现. 核心CSS代码: .wmd1{ -webkit-transform: scale(.6); pos

分享7款让你赞叹的HTML5动画应用

前两天我们收集了不少炫酷的HTML5最新动画应用,效果都还不错,值得让人赞叹.今天就精选7款最新的HTML5动画应用分享给大家,希望能喜欢. 1.HTML5 3D图片阴影翻转动画 效果很酷 今天我们要分享一款很酷的HTML5 3D动画特效,这款3D特效可以为你的图片增加阴影的效果,而且可以让图片在鼠标滑过的时候出现3D翻转的动画效果.这和之前分享的HTML5 3D动画HTML5 3D正方体旋转动画有着类似的效果,大家也可以看看. 在线演示 / 源码下载 2.HTML5 Canvas波浪动画 可调

10款很酷的HTML5动画和实用应用 有源码

10款很酷的HTML5动画和实用应用,这里有菜单.SVG动画.Loading动画,总有你喜欢的,而且,每一款HTML5应用都提供源代码下载,方便大家学习和研究,一起来看看吧. 1.HTML5 SVG 树枝分叉动画特效 今天我们来分享一款基于HTML5和SVG的动画效果,它是一个可以自动分叉的树,动画将以二叉树的形式展开.这三颗SVG树先是用svg的g画笔来定义这些树枝,然后利用javascript来实现动态改变g从而实现树枝的分叉展开动画. 在线演示 源码下载 2.HTML5/CSS3 3D下拉