表白代码,爱心树html
实例如下:
代码语言:javascript复制<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>爱心树表白动画</title>
<style>
body {
margin: 0;
padding: 0;
background: #fafafa;
font-size: 14px;
font-family: "微软雅黑", "宋体", sans-serif;
color: #231f20;
overflow: auto;
}
a {
color: #000;
font-size: 14px;
}
#main {
width: 100%;
}
#wrap {
position: relative;
margin: 0 auto;
width: 1100px;
height: 680px;
margin-top: 10px;
}
#text {
width: 400px;
height: 425px;
left: 60px;
top: 80px;
position: absolute;
}
#code {
display: none;
font-size: 16px;
}
#clock-box {
position: absolute;
left: 60px;
top: 550px;
font-size: 28px;
display: none;
}
#clock-box a {
font-size: 28px;
text-decoration: none;
}
#clock {
margin-left: 48px;
}
#clock .digit {
font-size: 64px;
}
#canvas {
margin: 0 auto;
width: 1100px;
height: 680px;
}
#error {
margin: 0 auto;
text-align: center;
margin-top: 60px;
display: none;
}
.hand {
cursor: pointer;
}
.say {
margin-left: 5px;
}
.space {
margin-right: 150px;
}
</style>
</head>
<body>
<div id="main">
<div id="error">
抱歉!目前您的浏览器无法显示,请更新至最新版本或使用其他主流浏览器,谢谢合作。
</div>
<div id="wrap">
<canvas id="canvas" width="1100" height="680"></canvas>
</div>
</div>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jquery.min.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex.min.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex-parser.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex-jit.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex-builderbase.min.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex-async.min.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/jscex-async-powerpack.min.js"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/functions.js"
charset="utf-8"
></script>
<script
type="text/javascript"
src="https://cdn-static-devbit.csdn.net/devbit-static/code/love-tree/js/love.js"
charset="utf-8"
></script>
<script>
(function () {
var canvas = $("#canvas");
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,
width: 1080,
height: 650
},
footer: {
width: 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);
canvas
.parent()
.css("background", "url(" tree.toDataURL("image/png") ")");
canvas.css("background", "#fafafa");
$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 () {
var together = new Date();
together.setFullYear(2010, 1, 15); //时间年月日
together.setHours(16); //小时
together.setMinutes(53); //分钟
together.setSeconds(0); //秒前一位
together.setMilliseconds(2); //秒第二位
$("#code").show().typewriter();
$("#clock-box").fadeIn(500);
while (true) {
timeElapse(together);
$await(Jscex.Async.sleep(1000));
}
})
);
var runAsync = eval(
Jscex.compile("async", function () {
$await(seedAnimate());
$await(growAnimate());
$await(flowAnimate());
$await(moveAnimate());
$await(jumpAnimate());
})
);
runAsync().start();
})();
</script>
</body>
</html>
演示效果如下: