• 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

  • 相关阅读:
    Django学习-开篇
    php7 安装event扩展
    nginx try_files 举例详解
    php7.2.3 安装pcntl 扩展
    nginx配置php-pathinfo
    thinkphp3.2.3使用PDO的问题
    niginx参数配置详解(转)
    lnmp编译安装:centos7+nginx-1.12+mariadb10.2+php7.2
    Git 误删本地代码恢复
    Typora + PicGo + Gitee 解放你对图片的管理
  • 原文地址:https://www.cnblogs.com/moqiutao/p/6384442.html
Copyright © 2020-2023  润新知