zoukankan      html  css  js  c++  java
  • HTML——2022年超好看的元旦倒计时

    2022即将到来,快来一起做一个元旦倒计时分享给自己喜欢的人吧~

    PC效果图:


    手机效果图:

    html:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>新年快乐</title><!-- 这是网页标题 -->
    <style>
    <body>
    <audio autoplay="autoplay" loop="loop" preload="auto"     src="http://music.163.com/song/media/outer/url?id=1811921555.mp3">       
    </audio>
    </body>
    </html>
    

    部分CSS:

    <style>
    body{
      overflow: hidden;
      margin: 0;
    }
    h1{
      position: fixed;
      top: 30%;
      left: 0;
       100%;
      text-align: center;
      transform:translateY(-50%);
      font-family: 'Love Ya Like A Sister', cursive;
      font-size: 60px;
      color: #c70012;
      padding: 0 20px;
    }
    h1 span{
      position: fixed;
      left: 0;
       100%;
      text-align: center;
    margin-top:30px;
        font-size:40px;
    }
    </style>
    

    部分JS:

    <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);
    </script>
    

      

     需要完整代码微信搜搜 *木易学长* 微信公众号,回复:元旦代码,即可获取完整源码哟~

  • 相关阅读:
    纹理作用于栅格建模
    Blender模拟全局照明的简单方法
    材质组合卡通眼球
    Blender 曲线操作
    材质纹理的初级示例
    Quick Noodle Physics in Blender Tutorial
    Blender简单动画:一个小球从一座山上滚下.
    PostgreSQL的目录结构及修改数据目录
    PostgreSQL的配置文件
    CentOS7安装PostgreSQL10,pgadmin4
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/15747788.html
Copyright © 2011-2022 走看看