这款HTML5树叶飘落动画是基于webkit内核的,也就是说要在webkit内核的浏览器上才能使用这款动画。

源码下载 演示地址
HTML代码
XML/HTML Code复制内容到剪贴板
    - <div id="container">   
-   <!-- The container is dynamically populated using the init function in leaves.js -->   
-   <!-- Its dimensions and position are defined using its id selector in leaves.css -->   
-   <div id="leafContainer"></div>   
-   <!-- its appearance, dimensions, and position are defined using its id selector in leaves.css -->   
-   <div id="message">   
-    <em>这是基于webkit的落叶动画</em>   
-   </div>   
- </div>   
CSS代码
CSS Code复制内容到剪贴板
    - #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;    
- }    
-    
- /* Defines the position and dimensions of the leafContainer div */   
- #leafContainer     
- {    
-     position: absolute;    
-     width: 100%;    
-     height: 100%;    
- }    
-    
- /* Defines the appearance, position, and dimensions of the message div */   
- #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;    
- }    
-    
- p {    
-   margin: 15px;    
- }    
-    
- a    
- {    
-   color: #5C090A;    
-   text-decoration: none;    
- }    
-    
- /* Sets the color of the "Dino's Gardening Service" message */   
- em     
- {    
-     font-weight: bold;    
-     font-style: normal;    
- }    
-    
- .phone {    
-   font-size: 150%;    
-   vertical-align: middle;    
- }    
-    
- /* This CSS rule is applied to all div elements in the leafContainer div.   
-    It styles and animates each leafDiv.   
- */   
- #leafContainer > div     
- {    
-     position: absolute;    
-     width: 100px;    
-     height: 100px;    
-    
-     /* We use the following properties to apply the fade and drop animations to each leaf.   
-        Each of these properties takes two values. These values respectively match a setting   
-        for fade and drop.   
-     */   
-     -webkit-animation-iteration-count: infinite, infinite;    
-     -webkit-animation-direction: normal, normal;    
-     -webkit-animation-timing-function: linear, ease-in;    
- }    
-    
- /* This CSS rule is applied to all img elements directly inside div elements which are   
-    directly inside the leafContainer div. In other words, it matches the 'img' elements   
-    inside the leafDivs which are created in the createALeaf() function.   
- */   
- #leafContainer > div > img {    
-      position: absolute;    
-      width: 100px;    
-      height: 100px;    
-    
-     /* We use the following properties to adjust the clockwiseSpin or counterclockwiseSpinAndFlip   
-        animations on each leaf.   
-        The createALeaf function in the Leaves.js file determines whether a leaf has the    
-        clockwiseSpin or counterclockwiseSpinAndFlip animation.   
-     */   
-      -webkit-animation-iteration-count: infinite;    
-      -webkit-animation-direction: alternate;    
-      -webkit-animation-timing-function: ease-in-out;    
-      -webkit-transform-origin: 50% -100%;    
- }    
-    
- /* Hides a leaf towards the very end of the animation */   
- @-webkit-keyframes fade    
- {    
-     /* Show a leaf while into or below 95 percent of the animation and hide it, otherwise */   
-     0%   { opacity: 1; }    
-     95%  { opacity: 1; }    
-     100% { opacity: 0; }    
- }    
-    
- /* Makes a leaf fall from -300 to 600 pixels in the y-axis */   
- @-webkit-keyframes drop    
- {    
-     /* Move a leaf to -300 pixels in the y-axis at the start of the animation */   
-     0%   { -webkit-transform: translate(0px, -50px); }    
-     /* Move a leaf to 600 pixels in the y-axis at the end of the animation */   
-     100% { -webkit-transform: translate(0px, 650px); }    
- }    
-    
- /* Rotates a leaf from -50 to 50 degrees in 2D space */   
- @-webkit-keyframes clockwiseSpin    
- {    
-     /* Rotate a leaf by -50 degrees in 2D space at the start of the animation */   
-     0%   { -webkit-transform: rotate(-50deg); }    
-     /*  Rotate a leaf by 50 degrees in 2D space at the end of the animation */   
-     100% { -webkit-transform: rotate(50deg); }    
- }    
-    
- /* Flips a leaf and rotates it from 50 to -50 degrees in 2D space */   
- @-webkit-keyframes counterclockwiseSpinAndFlip     
- {    
-     /* Flip a leaf and rotate it by 50 degrees in 2D space at the start of the animation */   
-     0%   { -webkit-transform: scale(-1, 1) rotate(50deg); }    
-     /* Flip a leaf and rotate it by -50 degrees in 2D space at the end of the animation */   
-     100% { -webkit-transform: scale(-1, 1) rotate(-50deg); }    
- }    
JavaScript代码
JavaScript Code复制内容到剪贴板
    - /* Define the number of leaves to be used in the animation */   
- const NUMBER_OF_LEAVES = 30;    
-    
- /*    
-     Called when the "Falling Leaves" page is completely loaded.   
- */   
- function init()    
- {    
-     /* Get a reference to the element that will contain the leaves */   
-     var container = document.getElementById('leafContainer');    
-     /* Fill the empty container with new leaves */   
-     for (var i = 0; i < NUMBER_OF_LEAVES; i++)     
-     {    
-         container.appendChild(createALeaf());    
-     }    
- }    
-    
- /*   
-     Receives the lowest and highest values of a range and   
-     returns a random integer that falls within that range.   
- */   
- function randomInteger(low, high)    
- {    
-     return low + Math.floor(Math.random() * (high - low));    
- }    
-    
- /*   
-    Receives the lowest and highest values of a range and   
-    returns a random float that falls within that range.   
- */   
- function randomFloat(low, high)    
- {    
-     return low + Math.random() * (high - low);    
- }    
-    
- /*   
-     Receives a number and returns its CSS pixel value.   
- */   
- function pixelValue(value)    
- {    
-     return value + 'px';    
- }    
-    
- /*   
-     Returns a duration value for the falling animation.   
- */   
-    
- function durationValue(value)    
- {    
-     return value + 's';    
- }    
-    
- /*   
-     Uses an img element to create each leaf. "Leaves.css" implements two spin    
-     animations for the leaves: clockwiseSpin and counterclockwiseSpinAndFlip. This   
-     function determines which of these spin animations should be applied to each leaf.   
-   
- */   
- function createALeaf()    
- {    
-     /* Start by creating a wrapper div, and an empty img element */   
-     var leafDiv = document.createElement('div');    
-     var image = document.createElement('img');    
-    
-     /* Randomly choose a leaf image and assign it to the newly created element */   
-     image.src = 'images/realLeaf' + randomInteger(1, 5) + '.png';    
-    
-     leafDiv.style.top = "-100px";    
-    
-     /* Position the leaf at a random location along the screen */   
-     leafDiv.style.left = pixelValue(randomInteger(0, 500));    
-    
-     /* Randomly choose a spin animation */   
-     var spinAnimationName = (Math.random() < 0.5) ? 'clockwiseSpin' : 'counterclockwiseSpinAndFlip';    
-    
-     /* Set the -webkit-animation-name property with these values */   
-     leafDiv.style.webkitAnimationName = 'fade, drop';    
-     image.style.webkitAnimationName = spinAnimationName;    
-    
-     /* Figure out a random duration for the fade and drop animations */   
-     var fadeAndDropDuration = durationValue(randomFloat(5, 11));    
-    
-     /* Figure out another random duration for the spin animation */   
-     var spinDuration = durationValue(randomFloat(4, 8));    
-     /* Set the -webkit-animation-duration property with these values */   
-     leafDiv.style.webkitAnimationDuration = fadeAndDropDuration + ', ' + fadeAndDropDuration;    
-    
-     var leafDelay = durationValue(randomFloat(0, 5));    
-     leafDiv.style.webkitAnimationDelay = leafDelay + ', ' + leafDelay;    
-    
-     image.style.webkitAnimationDuration = spinDuration;    
-    
-     // add the <img> to the <div>    
-     leafDiv.appendChild(image);    
-    
-     /* Return this img element so it can be added to the document */   
-     return leafDiv;    
- }    
-    
- /* Calls the init function when the "Falling Leaves" page is full loaded */   
- window.addEventListener('load', init, false);    
以上就是本文的全部内容,希望对大家学习有所帮助。