用js实现简单的满屏跳动的心

2023-10-26

用js实现简单的满屏跳动的心
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>闪亮的心心</title>
  <style>  
    input {
      background-color: rgb(146, 146, 231);
      border: 1px dotted yellow;    
      color: aliceblue;
    }
    #dv {    
      border: 2px dotted yellow;
      background-color: black;
    }
    span{
      position: absolute;
      font-size: 20px;
    }
    .cls{
      background-color: #000;
    }
  </style>
</head>

<body>
  <input type="button" value="开关灯" id="off"  class="cls">
  <input type="button" name="" id="star" value="星辰大海">
  <div id="dv">
  </div>
  <script src="common.js"></script>
  <script>
   document.getElementById("off").onclick=function(){
     document.body.className=document.body.className!="cls"?"cls":"";
   }
    document.getElementById("star").onclick = function () {   
       setInterval(function () {       
        document.getElementById("dv").innerHTML="<span>❤</span>";
        var span=document.querySelector("span");
        var dv=document.getElementById("dv");

        for(i=0;i<100;i++){
          var sp= span.cloneNode(true);
           dv.appendChild(sp);

           var r = parseInt(Math.random() *256);
           var g = parseInt(Math.random() * 256); 
           var b = parseInt(Math.random() * 256);
           var y = parseInt(Math.random() * 1240);
           var x = parseInt(Math.random() *600);

           document.getElementById("dv").firstElementChild.style.color="rgb("+r+","+g+","+b+")";
           document.getElementById("dv").firstElementChild.style.left = y + "px";
           document.getElementById("dv").firstElementChild.style.top = x + "px";
        }       
      },500);    
    };
  </script>
</body>

</html>

总结一下,这个简单的效果,主要用到的知识点有

  • 为按钮注册点击事件onclick
  • 定时器setInterval(函数,毫秒值)l的使用。
  • 克隆节点(想要克隆的那个节点 . cloneNode(布尔值);false: 代表浅复制,只会单纯的复制一层节点。true:代表深复制,恢复制想要复制的节点以及他包含的所有。)
  • 随机颜色的使用,RGB分别去不同的随机数,就可以实现随机色,用parseInt给每一种颜色的几率会相对均等一些。
  • 随机位置,用两个随机数可以设置元素的left和top。
  • 最后一定要注意要动的元素一定要脱离标准流吖。

附上本人的效果图haha:
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用js实现简单的满屏跳动的心 的相关文章

随机推荐

  • VMware 搭建linux操作系统,入门必看

    VMware 搭建linux操作系统 入门必看 很多小伙伴 刚开始学习Linux可能很枯燥 那是因为你少了环境 正所谓是 工欲善其事 必先利其器 要想入门Linux 我们不得不有VMare和Linux这两个宝贝 当然 你可能在为你的镜像亦或
  • 编译器设计(十)——数据流分析

    文章目录 一 概述 二 迭代数据流分析 2 1 支配性 2 2 活跃变量分析 2 3 数据流分析的局限性 2 4 其他数据流问题 2 4 1 可用表达式 2 4 2 可达定义 2 4 3 可预测表达式 2 4 4 过程间综述问题 三 静态单
  • EasyImage简单图床 - 快速搭建私人图床云盘同时远程访问

    文章目录 1 前言 2 EasyImage网站搭建 2 1 EasyImage下载和安装 2 2 EasyImage网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar云端设置 3 2 Cpolar内网穿透本地
  • Hawk-and-Chicken HDU - 3639(tarjan,重点说一下为什么要反向建图)

    题意 大学班级选班长 N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适 意见具有传递性 即 A 认为 B 合适 B 认为 C 合适 则 A 也认为 C 合适 勤劳的 TT 收集了M条意见 想要知道最高票数 并给出一份候
  • Mysql5.7版本忘记密码(Windows10)

    Mysql5 7版本忘记密码 Windows10 我的localhost一直是记住密码的 不知道为啥突然登录不上了 登录后会提示 1045 Access denied for user root using password YES 修复步
  • 个人小程序实现微信支付

    其实个人小程序是没办法直接调用微信支付的 但是可以间接的去调用 就是通过第三方的服务 如 https www payjx cn 通过调用它得接口 返回一个带支付二维码得结果 这个二维码被微信扫码支付后 通过开发者留得通知地址回调给开发者 就
  • 如何idea建包不让重叠(2022)

    1 去掉这个就可以了
  • Allegro PCB设计小诀窍系列--如何把PCB板上的线变成铜皮

    背景介绍 我们在进行PCB设计时 经常需要从其他软件导入图形 比如用其他软件绘制完成的防静电标识等 Allegro软件对于图形的描述是矢量的 而有很多软件对大块图形的描述是线性的 这就导致这类图形导入到Allegro之后 图形是由一条条的线
  • 独家

    作者 Faizan Shaikh 翻译 季洋 校对 王雨桐 本文约2700字 建议阅读10 分钟 本文将展示如何使用开源工具完成一个人脸识别的算法 引言 计算机视觉和机器学习已经开始腾飞 但是大多数人并不清楚计算机在识别一张图片的时候 它到
  • C语言宏定义嵌套容易出错,难道是C的Bug?

    今天的HDU上面做题 4501题的时候本想嵌套一个宏 简单一点 但是调试好久都不行 就是输出不对 后来改成函数就可以了 define max x y x
  • 8.9数据结构作业

    队列头文件 ifndef HTLINKLIST H define HTLINKLIST H typedef int datatype typedef struct Node union datatype data int len struc
  • vs2017运行显示系统找不到指定的文件_十分钟学会win10系统封装-封装

    Easy Sysprep将封装分为了两个阶段 第一阶段 以完成封装操作为首要目的 第二阶段 以完成对系统的调整为首要目的 将封装与调整分开 减少调整操作对封装操作的影响 保障封装成功率 第一阶段 在C盘目录下新建文件夹Sysprep 拷贝万
  • javaScript获取cookie转换成json

    原始转换 function cookie to json var cookie text document cookie var arr var text to split cookie text split for var i in te
  • AcWing 756. 蛇形矩阵

    题目 输入两个整数n和m 输出一个n行m列的矩阵 将数字 1 到 n m 按照回字蛇形填充至矩阵中 具体矩阵形式可参考样例 输入格式 输入共一行 包含两个整数n和m 输出格式 输出满足要求的矩阵 矩阵占n行 每行包含m个空格隔开的整数 数据
  • 天梯赛 一至十二届题解合集(最简洁规范题解)

    l1和l2已全部更新完毕 l3更新大概1 3 有更好的解法的大佬请在评论区指出 题解 第一届 点我 题解 第二届 点我 题解 第三届 点我 题解 第四届 点我 题解 第五届 点我 题解 第六届 点我 题解 第七届 点我 题解 第八届 点我
  • (网络安全数据集一)美国国家安全漏洞库 NVD-CVE信息解读 和常用漏洞库

    NVD中CVE信息解读 最近要用到这方面的数据 就对NVD中的一小段CVE信息选取做了简单的理解 有错的地方请大佬指正 一个完整的CVE信息 包含 六部分 元数据 漏洞影响软件信息 漏洞问题类型 参考和漏洞介绍 configurations
  • Spring Boot 中的 @SendTo 注解

    Spring Boot 中的 SendTo 注解 在 Spring Boot 中 SendTo 注解是一个非常有用的注解 它可以用于实现 WebSocket 的消息转发功能 本文将介绍 SendTo 注解的原理 使用方法和示例代码 什么是
  • Sophus库:对SO(3)和SE(3)的构建及扰动模型搭建

    简介 使用Eigen库中Geometry模块能够实现对 S O 3 SO 3 SO 3 S
  • 微信开发者工具的版本控制

    注意事项 拉取代码时 应先关闭所有的编辑器代码页面 清理版本管理工具里的工作区 保存到本地 不管什么时候 需要把代码提交到线上的请先拉取一下线上代码 一 提交代码流程 先在 微信开发者工具 的 版本管理 中把代码存储在本地分支上 拉取线上分
  • 用js实现简单的满屏跳动的心

    用js实现简单的满屏跳动的心