• 520表白酷炫html


    html表白神器,动态浮动爱心,话不多说,直接看

    <!doctype html>
    <html>
    
        <head>
            <meta charset="utf-8">
            <title>我爱你</title>
            <link href="favicon.ico" rel="shortcut icon" />
            <style>
                body {
                    overflow: hidden;
                    margin: 0;
                }
                
                h1 {
                    position: fixed;
                    top: 50%;
                    left: 0;
                    width: 100%;
                    text-align: center;
                    transform: translateY(-50%);
                    font-family: 'Love Ya Like A Sister', cursive;
                    font-size: 40px;
                    color: #c70012;
                    padding: 0 20px;
                }
                
                h1 span {
                    font-size: 20px;
                }
            </style>
    
        </head>
    
        <body>
            <h1 id="h1"></h1>
            <canvas></canvas>
    
            <script>
                var canvas = document.querySelector("canvas"),
                    ctx = canvas.getContext("2d");
    
                var ww, wh;
    
                function onResize() {
                    ww = canvas.width = window.innerWidth;
                    wh = canvas.height = window.innerHeight;
                }
    
                ctx.strokeStyle = "red";
                ctx.shadowBlur = 25;
                ctx.shadowColor = "hsla(0, 100%, 60%,0.5)";
    
                var precision = 100;
                var hearts = [];
                var mouseMoved = false;
    
                function onMove(e) {
                    mouseMoved = true;
                    if(e.type === "touchmove") {
                        hearts.push(new Heart(e.touches[0].clientX, e.touches[0].clientY));
                        hearts.push(new Heart(e.touches[0].clientX, e.touches[0].clientY));
                    } else {
                        hearts.push(new Heart(e.clientX, e.clientY));
                        hearts.push(new Heart(e.clientX, e.clientY));
                    }
                }
    
                var Heart = function(x, y) {
                    this.x = x || Math.random() * ww;
                    this.y = y || Math.random() * wh;
                    this.size = Math.random() * 2 + 1;
                    this.shadowBlur = Math.random() * 10;
                    this.speedX = (Math.random() + 0.2 - 0.6) * 8;
                    this.speedY = (Math.random() + 0.2 - 0.6) * 8;
                    this.speedSize = Math.random() * 0.05 + 0.01;
                    this.opacity = 1;
                    this.vertices = [];
                    for(var i = 0; i < precision; i++) {
                        var step = (i / precision - 0.5) * (Math.PI * 2);
                        var vector = {
                            x: (15 * Math.pow(Math.sin(step), 3)),
                            y: -(13 * Math.cos(step) - 5 * Math.cos(2 * step) - 2 * Math.cos(3 * step) - Math.cos(4 * step))
                        }
                        this.vertices.push(vector);
                    }
                }
    
                Heart.prototype.draw = function() {
                    this.size -= this.speedSize;
                    this.x += this.speedX;
                    this.y += this.speedY;
                    ctx.save();
                    ctx.translate(-1000, this.y);
                    ctx.scale(this.size, this.size);
                    ctx.beginPath();
                    for(var i = 0; i < precision; i++) {
                        var vector = this.vertices[i];
                        ctx.lineTo(vector.x, vector.y);
                    }
                    ctx.globalAlpha = this.size;
                    ctx.shadowBlur = Math.round((3 - this.size) * 10);
                    ctx.shadowColor = "hsla(0, 100%, 60%,0.5)";
                    ctx.shadowOffsetX = this.x + 1000;
                    ctx.globalCompositeOperation = "screen"
                    ctx.closePath();
                    ctx.fill()
                    ctx.restore();
                };
    
                function render(a) {
                    requestAnimationFrame(render);
    
                    hearts.push(new Heart())
                    ctx.clearRect(0, 0, ww, wh);
                    for(var i = 0; i < hearts.length; i++) {
                        hearts[i].draw();
                        if(hearts[i].size <= 0) {
                            hearts.splice(i, 1);
                            i--;
                        }
                    }
                }
    
                onResize();
                window.addEventListener("mousemove", onMove);
                window.addEventListener("touchmove", onMove);
                window.addEventListener("resize", onResize);
                requestAnimationFrame(render);
    
                window.onload = function starttime() {
                    time(h1, '2018/6/7'); // 在一起的时间
                    ptimer = setTimeout(starttime, 1000); // 添加计时器
                }
    
                function time(obj, futimg) {
                    var nowtime = new Date().getTime(); // 现在时间转换为时间戳
                    var futruetime = new Date(futimg).getTime(); // 未来时间转换为时间戳
                    var msec = nowtime - futruetime; // 毫秒 未来时间-现在时间
                    var time = (msec / 1000); // 毫秒/1000
                    var day = parseInt(time / 86400); // 天  24*60*60*1000 
                    var hour = parseInt(time / 3600) - 24 * day; // 小时 60*60 总小时数-过去的小时数=现在的小时数 
                    var minute = parseInt(time % 3600 / 60); // 分 -(day*24) 以60秒为一整份 取余 剩下秒数 秒数/60 就是分钟数
                    var second = parseInt(time % 60); // 以60秒为一整份 取余 剩下秒数
                    //              console.log(hour+":"+minute+":"+second)
                    //              alert(hour)
                    obj.innerHTML = "亲爱藏藏的<br>咱俩在一起的时间已经:<br>" + day + "" + hour + "小时" + minute + "" + second + "" + "了<br><span>一时间不知道从哪说起,<br>不管面临多大的压力,不管前面的路如何崎岖.<br>不管经历过什么,我仍坚信最浪漫的事就是和你一起慢慢变老.<br>相信中间的计时器,将永远继续下去,直至数据溢出.</span>"
    
                    return true;
                }
            </script>
    
        </body>
    
    </html>
    如果真的不知道将来要做什么,索性就先做好眼前的事情。只要今天比昨天过得好,就是进步。长此以往,时间自然会还你一个意想不到的未来。
    生活像一个杯子。一开始,里面是空的,之后,要看你怎么对待它。如果你只往不如意的方面想,那么你最终辉得到一杯苦水。如果你往好的方面想,那么你最终会得到一杯清泉。
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
  • 相关阅读:
    iOS 证书、真机调试、发布 App Store
    iOS 9 适配
    交叉编译tslib1.4
    nau8822 codec driver 录音时mic bias 无法自动打开问题
    nuc900 nand flash mtd 驱动
    在ubuntu14.04上安装oracle java6 java7的方法
    N3292x IBR介绍
    N3292系列资料之RTC介绍
    支持mdev的init脚本片断
    Nginx
  • 原文地址:https://www.cnblogs.com/lipengze/p/11439067.html
Copyright © 2020-2023  润新知