<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>best wishes</title>
<head>
<style>
html {
height: 100%;
}
body {
font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif;
background: #79a8ae;
color: #CFEBE4;
font-size: 18px;
line-height: 2;
letter-spacing: 1.2px;
margin: 0;
}
a {
color: #ebf7f4;
}
.body--ready {
background: -webkit-linear-gradient(top, rgb(203, 235, 219) 0%, rgb(55, 148, 192) 120%);
background: -moz-linear-gradient(top, rgb(203, 235, 219) 0%, rgb(55, 148, 192) 120%);
background: -o-linear-gradient(top, rgb(203, 235, 219) 0%, rgb(55, 148, 192) 120%);
background: -ms-linear-gradient(top, rgb(203, 235, 219) 0%, rgb(55, 148, 192) 120%);
background: linear-gradient(top, rgb(203, 235, 219) 0%, rgb(55, 148, 192) 120%);
}
.text {
position: fixed;
bottom: 100px;
text-align: center;
font-size: 1.875rem;
width: 100%;
}
.canvas {
margin: 0 auto;
display: block;
}
img#logo {
width: 128px;
background-size: cover;
border-radius: 200px;
box-shadow: 0px 0px 40px rgba(63, 81, 181, 0.72);
border: 3px solid #00a0ff;
opacity: 1;
margin: 0 auto;
margin-top: 20px;
margin-bottom: 20px;
transition: all 1.0s;
}
#logo:hover {
box-shadow: 0 0 10px #fff;
-webkit-box-shadow: 0 0 19px #fff;
transform: rotate(360deg);
-ms-transform: rotate(360deg); /* IE 9 */
-moz-transform: rotate(360deg); /* Firefox */
-webkit-transform: rotate(360deg); /* Safari 和 Chrome */
-o-transform: rotate(360deg); /* Opera */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
.cs {
width: 100%;
height: 100%;
margin: 0 auto;
position: absolute;
text-align: center;
}
.text {
position: fixed;
bottom: 80px;
text-align: center;
width: 100%;
font-weight: bold;
}
.text-right {
position: fixed;
bottom: 50px;
text-align: right;
width: 100%;
font-weight: bold;
}
</style>
</head>
<body>
<!--头像-->
<div class="cs">
<!-- src表示头像的地址,建议上传到网页,然后放链接 可以上传到这个网站http://chuantu.biz/-->
<img src="https://z3.ax1x.com/2021/03/25/6LDxpT.jpg" id="logo">
</div>
<canvas class="canvas" width="1820" height="905"></canvas>
<p class="text" style="color: #d7fffc;">
Happy two years !
<br />
<span id="span_dt_dt"></span>
</p>
<script language="javascript">
function show_date_time() {
window.setTimeout("show_date_time()", 1000);
//你俩在一起的那天
BirthDay = new Date("3/22/2021 00:00:00");
today = new Date();
timeold = (today.getTime() - BirthDay.getTime());
sectimeold = timeold / 1000
secondsold = Math.floor(sectimeold);
msPerDay = 24 * 60 * 60 * 1000
e_daysold = timeold / msPerDay
daysold = Math.floor(e_daysold);
e_hrsold = (e_daysold - daysold) * 24;
hrsold = Math.floor(e_hrsold);
e_minsold = (e_hrsold - hrsold) * 60;
minsold = Math.floor((e_hrsold - hrsold) * 60);
seconds = Math.floor((e_minsold - minsold) * 60);
span_dt_dt.innerHTML = daysold + "天" + hrsold + "小时" + minsold + "分" + seconds + "秒";
}
show_date_time();
</script>
<script>
var S = {
init: function () {
S.Drawing.init('.canvas');
document.body.classList.add('body--ready');
// 动态变化的话,用|分割
S.UI.simulate("I|hope|you|can|do|well|in|the|IELTS|test|Don’t|forget|me|and|our|friends|who|are|studying|together|I|believe|you|#countdown 3|愿我们|都能在彼此|看不见的地方|#time");
S.Drawing.loop(function () {
S.Shape.render();
});
}
};
S.Drawing = (function () {
var canvas,
context,
renderFn,
requestFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000 / 60);
};
return {
init: function (el) {
canvas = document.querySelector(el);
context = canvas.getContext('2d');
this.adjustCanvas();
window.addEventListener('resize', function (e) {
S.Drawing.adjustCanvas();
});
},
loop: function (fn) {
renderFn = !renderFn ? fn : renderFn;
this.clearFrame();
renderFn();
requestFrame.call(window, this.loop.bind(this));
},
adjustCanvas: function () {
canvas.width = window.innerWidth - 100;
canvas.height = window.innerHeight - 30;
},
clearFrame: function () {
context.clearRect(0, 0, canvas.width, canvas.height);
},
getArea: function () {
return {w: canvas.width, h: canvas.height};
},
drawCircle: function (p, c) {
context.fillStyle = c.render();
context.beginPath();
context.arc(p.x, p.y, p.z, 0, 2 * Math.PI, true);
context.closePath();
context.fill();
}
};
}());
S.UI = (function () {
var interval,
currentAction,
time,
maxShapeSize = 30,
sequence = [],
cmd = '#';
function formatTime(date) {
var h = date.getHours(),
m = date.getMinutes(),
m = m < 10 ? '0' + m : m;
return h + ':' + m;
}
function getValue(value) {
return value && value.split(' ')[1];
}
function getAction(value) {
value = value && value.split(' ')[0];
return value && value[0] === cmd && value.substring(1);
}
function timedAction(fn, delay, max, reverse) {
clearInterval(interval);
currentAction = reverse ? max : 1;
fn(currentAction);
if (!max || (!reverse && currentAction < max) || (reverse && currentAction > 0)) {
interval = setInterval(function () {
currentAction = reverse ? currentAction - 1 : currentAction + 1;
fn(currentAction);
if ((!reverse && max && currentAction === max) || (reverse && currentAction === 0)) {
clearInterval(interval);
}
}, delay);
}
}
function performAction(value) {
var action,
value,
current;
sequence = typeof (value) === 'object' ? value : sequence.concat(value.split('|'));
timedAction(functi