亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 基于HTML5+Webkit實現樹葉飄落動畫

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

熱門標簽:當涂高德地圖標注 南寧點撥外呼系統哪家公司做的好 黃島區地圖標注 成都智能外呼系統平臺 云南大理400電話申請官方 四川點撥外呼系統 電銷機器人電話用什么卡 鎮江智能外呼系統有效果嗎 江蘇智能電銷機器人哪家好

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

 

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實現樹葉飄落動畫,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

標簽:十堰 廣西 佳木斯 西寧 咸寧 酒泉 南京 淮安

巨人網絡通訊聲明:本文標題《基于HTML5+Webkit實現樹葉飄落動畫》,本文關鍵詞  基于,HTML5+Webkit,實現,樹葉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于HTML5+Webkit實現樹葉飄落動畫》相關的同類信息!
  • 本頁收集關于基于HTML5+Webkit實現樹葉飄落動畫的相關信息資訊供網民參考!
  • 推薦文章
    欧美一级视频免费观看| 99久久精品国产免费| 美国一区二区三区| 高清一级片| 国产a毛片| 一级片片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 四虎影视库| 精品视频一区二区三区免费| 青青青草影院| 成人高清免费| 精品视频在线看| 亚洲 国产精品 日韩| 日韩av成人| 精品国产一区二区三区久久久狼| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 91麻豆精品国产综合久久久| 欧美激情一区二区三区视频高清| 久久精品店| 91麻豆精品国产高清在线| 久久国产精品自线拍免费| 韩国三级视频网站| 国产91精品一区二区| 欧美电影免费| 91麻豆国产级在线| 欧美日本免费| a级毛片免费全部播放| 日韩在线观看视频免费| 成人a大片高清在线观看| 可以在线看黄的网站| 高清一级淫片a级中文字幕| 久久久久久久网| 精品视频一区二区| 中文字幕一区二区三区精彩视频| 久久久成人网| 成人高清视频在线观看| 99热精品在线| 黄视频网站免费观看| 国产91精品系列在线观看| 国产网站在线| 久久久久久久网| 超级乱淫黄漫画免费| 成人免费福利片在线观看| 高清一级毛片一本到免费观看| 精品久久久久久综合网| 久久精品大片| 九九九网站| 日本在线www| 国产a毛片| 天天做人人爱夜夜爽2020毛片| 成人影院久久久久久影院| 亚洲天堂免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产福利免费观看| 久久精品成人一区二区三区| 美女免费精品视频在线观看| 国产国语对白一级毛片| 国产一区免费在线观看| 欧美激情一区二区三区中文字幕| 你懂的福利视频| 国产一区二区精品久久91| 亚洲天堂免费观看| 日韩在线观看视频网站| 国产成人欧美一区二区三区的| 欧美激情一区二区三区在线 | 美女免费毛片| 九九久久99| 久久国产一久久高清| 日日日夜夜操| 韩国三级视频网站| 国产原创中文字幕| 亚洲 激情| 中文字幕一区二区三区精彩视频| 亚洲精品中文一区不卡| 色综合久久天天综合绕观看| 国产不卡精品一区二区三区| 国产一级强片在线观看| 精品在线视频播放| 精品久久久久久免费影院| 亚州视频一区二区| 午夜在线亚洲| 亚洲天堂一区二区三区四区| 亚欧成人乱码一区二区| 999久久狠狠免费精品| 欧美爱色| 青青青草视频在线观看| 国产原创中文字幕| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩免费在线视频| 日本在线不卡视频| 国产91素人搭讪系列天堂| 国产高清在线精品一区二区| 美女免费毛片| 四虎影视精品永久免费网站 | 你懂的福利视频| 四虎影视久久| 中文字幕一区二区三区精彩视频 | 免费毛片播放| 欧美激情一区二区三区在线播放 | 可以免费看污视频的网站| 国产韩国精品一区二区三区| 国产一区二区精品尤物| 久久99这里只有精品国产| 你懂的国产精品| 精品久久久久久影院免费| 精品视频在线观看免费| 天天色色色| 一级片片| 国产不卡高清在线观看视频| 国产精品自拍在线| 日韩在线观看免费完整版视频| 国产美女在线观看| 99色视频| 日日夜夜婷婷| 成人免费一级纶理片| 国产亚洲精品成人a在线| 国产伦理精品| 精品视频一区二区三区| 欧美另类videosbestsex| 国产一区精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产高清视频免费| 99久久视频| 韩国三级香港三级日本三级| 91麻豆高清国产在线播放| 国产国语在线播放视频| 高清一级片| 日本特黄特色aaa大片免费| 国产成a人片在线观看视频| 精品美女| 香蕉视频三级| 99热精品一区| 免费毛片基地| 国产一级强片在线观看| 99久久精品国产国产毛片| 国产亚洲精品成人a在线| 免费的黄视频| 日韩免费片| 香蕉视频久久| 91麻豆精品国产片在线观看| 成人影院一区二区三区| 超级乱淫伦动漫| 久久国产影视免费精品| 国产成人精品综合久久久| 一本伊大人香蕉高清在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久国产精品自线拍免费| 精品视频一区二区| 欧美国产日韩一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本伦理片网站| 成人影院久久久久久影院| 国产一区免费在线观看| 国产视频久久久久| 中文字幕一区二区三区 精品 | 精品国产香蕉在线播出| 999精品在线| 青青久久网| 成人免费高清视频| 亚久久伊人精品青青草原2020| 精品视频一区二区| 精品国产一区二区三区精东影业 | 日本特黄特黄aaaaa大片| 国产美女在线一区二区三区| 成人免费网站久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩一级黄色片| a级精品九九九大片免费看| 精品国产一区二区三区久久久狼| 亚洲精品永久一区| 国产成人精品影视| 国产成人精品综合在线| 国产伦久视频免费观看 视频| 久久国产影视免费精品| 欧美激情一区二区三区视频 | 精品国产一区二区三区免费| 高清一级做a爱过程不卡视频| 麻豆系列国产剧在线观看| 台湾毛片| 欧美激情一区二区三区视频| 日日日夜夜操| 美女免费黄网站| 99色视频在线观看| 九九久久国产精品大片| 亚欧成人毛片一区二区三区四区| 尤物视频网站在线观看| 青青青草视频在线观看| 国产亚洲精品aaa大片| 黄视频网站在线看| 国产不卡福利| 91麻豆精品国产高清在线| 久久久久久久久综合影视网| 日韩在线观看免费| 九九免费精品视频| 欧美大片一区| 黄视频网站免费观看| 亚欧视频在线|