亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

基于HTML5+Webkit實現樹葉飄落動畫

2024-09-05 07:22:16
字體:
來源:轉載
供稿:網友

實現如圖所示的東西效果(落葉下落):

 

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

PS:下面看下html5 canvas處理連續幀圖片,下面的代碼基于IE8以上

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/><title>Canvas Demo</title><script>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);}   //為了讓圖片以規定的速度動畫,我們必須追蹤已經經過的時間,然后根據分配給每幀的時間播放幀?;静襟E是://1、按每秒幾幀設置動畫速度(msPerFrame)。//2、當你循環游戲時,計算一下自最后一幀以后已經經過了多少時間(delta)。//3、如果已經經過的時間足夠把動畫幀播完,那么播放這一幀并設置累積delta為0。//4、如果已經經過的時間不夠,那么記?。ɡ鄯e)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。            };})();</script></head><body style="position:absolute;margin:0;padding:0;width:100%;height:100%;">    <canvas id="animation_canvas"></canvas></body></html>

總結

以上所述是小編給大家介紹的基于HTML5+Webkit實現樹葉飄落動畫,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成在人线av| 美女福利精品视频| 色偷偷9999www| 国产美女直播视频一区| 亚洲视频在线观看免费| 成人情趣片在线观看免费| 亚洲人成亚洲人成在线观看| 91产国在线观看动作片喷水| 日本久久91av| 最近2019中文字幕一页二页| 久久精品成人一区二区三区| 亚洲黄在线观看| 国产精品情侣自拍| 欧美激情xxxxx| 亚洲欧美制服第一页| 欧美高清激情视频| 亚洲偷欧美偷国内偷| 色婷婷av一区二区三区在线观看| 国产一区二区av| 精品久久香蕉国产线看观看gif| 国产精品福利网站| 9.1国产丝袜在线观看| 久久久久久国产精品三级玉女聊斋| 精品亚洲永久免费精品| 91精品久久久久久久久不口人| 一区二区三区久久精品| 国产日韩av高清| 欧美日韩在线视频首页| 国产精品视频26uuu| 成人a在线观看| 亚洲专区国产精品| 亚洲国产成人久久综合一区| 一区二区三区回区在观看免费视频| 久久福利视频网| 欧美激情视频三区| 69**夜色精品国产69乱| 美日韩精品免费视频| 久久国产精品网站| 热re99久久精品国产66热| 欧美日韩一区二区免费在线观看| 久久精品国产一区| 久久久久久亚洲| 国产精品国产三级国产专播精品人| 国产精品高潮呻吟视频| 亚洲国产99精品国自产| 自拍偷拍亚洲欧美| 在线观看亚洲视频| 国产日韩在线观看av| 欧美性xxxx极品hd满灌| 国产精品久久久久久久av大片| 欧美色视频日本版| 日韩男女性生活视频| 亚洲自拍高清视频网站| 欧美综合第一页| 人人澡人人澡人人看欧美| 国产福利视频一区| 国产精品第七十二页| 日韩在线视频免费观看| 日韩专区在线观看| 国产精品高潮呻吟久久av野狼| 日韩av手机在线看| 久久99热这里只有精品国产| 国产精品一区二区三区在线播放| 91精品国产九九九久久久亚洲| 久久久电影免费观看完整版| 欧美高清不卡在线| 日韩暖暖在线视频| 欧美日本中文字幕| 国产精品久久久久久久9999| 中文字幕av一区二区三区谷原希美| 91伊人影院在线播放| 亚洲日本成人女熟在线观看| 78m国产成人精品视频| 亚洲免费人成在线视频观看| 中文字幕亚洲色图| 成人黄色激情网| 福利精品视频在线| 国产精品美女在线观看| 久久久精品影院| 深夜福利91大全| 91久久国产精品91久久性色| 国产精品久久久999| 久久91精品国产| 亚洲欧洲成视频免费观看| 成人黄色短视频在线观看| 国产一区二区三区免费视频| 日韩在线中文字幕| 久久中文字幕国产| 高潮白浆女日韩av免费看| 国产精品免费视频久久久| 欧美另类极品videosbest最新版本| 91最新在线免费观看| 夜夜嗨av一区二区三区免费区| 成人中文字幕+乱码+中文字幕| 日韩欧美高清在线视频| 日韩电影免费在线观看| 国产精品久久999| 97香蕉久久超级碰碰高清版| 国内精品伊人久久| 日本精品久久中文字幕佐佐木| 亚洲日本欧美中文幕| 国产一区二区在线播放| 欧美视频在线观看 亚洲欧| 亚洲丝袜一区在线| 亚洲精品视频播放| 欧美福利视频网站| 国产精品88a∨| 美女国内精品自产拍在线播放| 久久久久久久久久国产精品| 亚洲人永久免费| 国产在线日韩在线| 成人春色激情网| 日本一区二区在线免费播放| 欧美激情二区三区| 最近2019中文字幕在线高清| 国产欧美日韩精品专区| 日韩高清av一区二区三区| 人人爽久久涩噜噜噜网站| 91中文精品字幕在线视频| 亚洲国产精久久久久久| 91欧美激情另类亚洲| 国产精品十八以下禁看| 国产欧美精品va在线观看| 一区二区三区视频在线| 日韩免费观看在线观看| 中文字幕欧美专区| 亚洲自拍偷拍色片视频| 亚洲黄色www网站| 欧美日韩亚洲精品一区二区三区| 亚洲成人中文字幕| 亚洲国产精品999| 色噜噜狠狠狠综合曰曰曰| 久久久国产成人精品| 91国自产精品中文字幕亚洲| 久久影院资源站| 精品欧美一区二区三区| 成人黄色av免费在线观看| 精品久久久视频| 欧美亚洲另类制服自拍| 日韩欧美在线免费| 国产狼人综合免费视频| 一区二区三区亚洲| 成人激情电影一区二区| 国产精品视频永久免费播放| 亚洲免费伊人电影在线观看av| 亚洲精品国产品国语在线| 亚洲精品中文字| 91啪国产在线| 欧美中文字幕视频| 海角国产乱辈乱精品视频| 亚洲精品国产精品国自产在线| 国产精品一区电影| 成人精品福利视频| 最近2019中文字幕第三页视频| 国内精品小视频在线观看| 亚洲国产欧美久久| 久久久精品国产网站| 欧美日韩国产精品一区二区三区四区| 久久中文字幕国产| 亚洲最大的网站| 久久免费视频这里只有精品| 欧美大片免费观看在线观看网站推荐| 欧美日韩中文字幕综合视频| 丝袜亚洲另类欧美重口|