zoukankan      html  css  js  c++  java
  • 程序员用HTML5制作的爱心树表白动画

    体验效果:http://keleyi.com/keleyi/phtml/html5/31.htm

    推荐:http://hovertree.com/texiao/css3/18/

    HTML代码如下:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="UTF-8" >
    <title>程序员用HTML5制作的爱心树表白动画- 柯乐义</title><base target="_blank" href="http://keleyi.com/keleyi/phtml/html5/" /> 
    <link type="text/css" rel="stylesheet" href="http://keleyi.com/keleyi/phtml/html5/31/renxi/default.css">
    <script type="text/javascript" src="http://keleyi.com/keleyi/pmedia/jquery/jquery-1.11.2.min.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex.min.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex-parser.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex-jit.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex-builderbase.min.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex-async.min.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/jscex-async-powerpack.min.js"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/functions.js" charset="utf-8"></script>
    <script type="text/javascript" src="http://keleyi.com/keleyi/phtml/html5/31/renxi/love.js" charset="utf-8"></script>
    <style type="text/css">
    <!--
    .STYLE1 {color: #666666}
    -->
    </style>
    </head>
    <body>
    
    <div id="main">
    <div id="error">本页面采用HTML5技术,目前您的浏览器无法显示,请使用<a href="http://keleyi.com/a/bjac/g039tue3.htm">支持HTML5的浏览器</a>查看本页。</div>
    <div id="wrap">
    <div id="text">
    <div id="code">
    <p> <font color="#FF0000"> <span class="say">亲爱的何文琪:</span><br>
    <span class="say"></span><br />
    <span class="say">曾经,</span><br>
    
    <span class="say">有一份真挚的爱情摆在我面前,</span><br />
    <span class="say">我没有珍惜,</span><br /> 
    <span class="say">等到我失去的时候才后悔莫及,</span><br>    
    
    <span class="say">人世间最痛苦的事莫过于此......</span><br>
    
    <span class="say">如果上天能够给我一个再来一次的机会,</span><br>
    
    <span class="say">我会对那个女孩子说六个字:</span><br>
    
    <span class="say">何文琪我爱你!</span><br />
    
    <span class="say">如果非要在这份爱上加一个期限,</span><br>
    
    <span class="say">我希望是..... </span><br>
    
    <span class="say">一万年!</span><br />
    
    <span class="say"><span class="space"></span> -- 爱你的柯乐义--</span>
    </font></p>
    </div>
    </div>
    <div id="clock-box">
    <script type="text/javascript" src="/kineryi/js/gggg336x280a.js"></script>
    </div>
    <canvas id="keleyi" width="1100" height="680"></canvas>
    </div>
    
    </div>
    
    <script>
    (function(){
    var canvas = $('#ke'+'leyi');
    
    if (!canvas[0].getContext) {
    $("#error").show();
    return false; }
    
    var width = canvas.width();
    var height = canvas.height(); 
    canvas.attr("width", width);
    canvas.attr("height", height);
    var opts = {
    seed: {
    x: width / 2 - 20,
    color: "rgb(190, 26, 37)",
    scale: 2
    },
    branch: [
    [535, 680, 570, 250, 500, 200, 30, 100, [
    [540, 500, 455, 417, 340, 400, 13, 100, [
    [450, 435, 434, 430, 394, 395, 2, 40]
    ]],
    [550, 445, 600, 356, 680, 345, 12, 100, [
    [578, 400, 648, 409, 661, 426, 3, 80]
    ]],
    [539, 281, 537, 248, 534, 217, 3, 40],
    [546, 397, 413, 247, 328, 244, 9, 80, [
    [427, 286, 383, 253, 371, 205, 2, 40],
    [498, 345, 435, 315, 395, 330, 4, 60]
    ]],
    [546, 357, 608, 252, 678, 221, 6, 100, [
    [590, 293, 646, 277, 648, 271, 2, 80]
    ]]
    ]] 
    ],
    bloom: {
    num: 700,
     1080,
    height: 650,
    },
    footer: {
     1200,
    height: 5,
    speed: 10,
    }
    }
    
    var tree = new Tree(canvas[0], width, height, opts);
    var seed = tree.seed;
    var foot = tree.footer;
    var hold = 1;
    
    canvas.click(function(e) {
    var offset = canvas.offset(), x, y;
    x = e.pageX - offset.left;
    y = e.pageY - offset.top;
    if (seed.hover(x, y)) {
    hold = 0; 
    canvas.unbind("click");
    canvas.unbind("mousemove");
    canvas.removeClass('hand');
    }
    }).mousemove(function(e){
    var offset = canvas.offset(), x, y;
    x = e.pageX - offset.left;
    y = e.pageY - offset.top;
    canvas.toggleClass('hand', seed.hover(x, y));
    });
    
    var seedAnimate = eval(Jscex.compile("async", function () {
    seed.draw();
    while (hold) {
    $await(Jscex.Async.sleep(10));
    }
    while (seed.canScale()) {
    seed.scale(0.95);
    $await(Jscex.Async.sleep(10));
    }
    while (seed.canMove()) {
    seed.move(0, 2);
    foot.draw();
    $await(Jscex.Async.sleep(10));
    }
    }));
    
    var growAnimate = eval(Jscex.compile("async", function () {
    do {
    tree.grow();
    $await(Jscex.Async.sleep(10));
    } while (tree.canGrow());
    }));
    
    var flowAnimate = eval(Jscex.compile("async", function () {
    do {
    tree.flower(2);
    $await(Jscex.Async.sleep(10));
    } while (tree.canFlower());
    }));
    
    var moveAnimate = eval(Jscex.compile("async", function () {
    tree.snapshot("p1", 240, 0, 610, 680);
    while (tree.move("p1", 500, 0)) {
    foot.draw();
    $await(Jscex.Async.sleep(10));
    }
    foot.draw();
    tree.snapshot("p2", 500, 0, 610, 680);
    
    // 会有闪烁不得意这样做, (>﹏<)
    canvas.parent().css("background", "url(" + tree.toDataURL('image/png') + ")");
    canvas.css("background", "#ffe");
    $await(Jscex.Async.sleep(300));
    canvas.css("background", "none");
    }));
    
    var jumpAnimate = eval(Jscex.compile("async", function () {
    var ctx = tree.ctx;
    while (true) {
    tree.ctx.clearRect(0, 0, width, height);
    tree.jump();
    foot.draw();
    $await(Jscex.Async.sleep(25));
    }
    }));
    
    var textAnimate = eval(Jscex.compile("async", function () {
    $("#code").show().typewriter();
    }));
    
    var runAsync = eval(Jscex.compile("async", function () {
    $await(seedAnimate());
    $await(growAnimate());
    $await(flowAnimate());
    $await(moveAnimate());
    
    textAnimate().start();
    
    $await(jumpAnimate());
    }));
    
    runAsync().start();
    })();
    </script>
    <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
    <p>适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。</p>
    <p><a href="http://keleyi.com" target="_blank">首页</a> <a href="http://keleyi.com/keleyi/phtml/">特效</a> <a href="http://keleyi.com/a/bjae/9dbvc2eg.htm">原文</a></p>
    </div>
    </body>
    </html>

    web前端资源:http://www.cnblogs.com/jihua/p/webfront.html

    表白的文字可以自己修改

  • 相关阅读:
    如何禁用Xcode7下iOS9 App传输安全,并修复无法连接服务器错误
    iOS单例清除
    Git忽略规则及.gitignore规则不生效的解决办法
    javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
    树莓派 远程桌面 设置显示中文
    在IIS Express中调试时无法读取配置文件 错误
    Win7 下IIS(7.5)发布 ASP.NET MVC
    .Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)
    CodeSimth
    windows 开机启动 CassiniDev(IIS替代软件)
  • 原文地址:https://www.cnblogs.com/jihua/p/html5biaobai.html
Copyright © 2011-2022 走看看