【HTML+CSS+JavaScript】实现萤火虫闪烁效果

news2024/11/19 14:52:18

文章目录

  • 【HTML+CSS+JavaScript】实现萤火虫闪烁效果
    • 一. 效果图
    • 二. HTML部分代码
    • 三. CSS部分代码
    • 四. JavaScript部分代码
      • 五. 外部js文件代码
    • 六. 完整的代码和图片获取

【HTML+CSS+JavaScript】实现萤火虫闪烁效果

本文主要讲解屏幕不断闪烁星光效果(配合夜晚深林的背景图片看上去就像一个个萤火虫在闪烁一样),当然温馨提示:小编在文章末尾附有完整的代码和图片获取链接。

一. 效果图

请添加图片描述

二. HTML部分代码

<!-- 引入外部js文件 -->
<script type="text/javascript" src="buffermove1.js"></script>

三. CSS部分代码

* {
    padding: 0px;
    margin: 0px;
}

body {
    width: 100%;
    height: 100%;
    background-image: url(bg.jpg);
    background-size: cover;
    position: relative;
    overflow: hidden;
}

img {
    width: 20px;
    height: 20px;
    position: absolute;
}

四. JavaScript部分代码

function Firework() {
    this.cw = document.documentElement.clientWidth;
    this.ch = document.documentElement.clientHeight;
}
//创建图片
Firework.prototype.createfirework = function() {
    this.fire = document.createElement('img');
    this.fire.src = '1.jpg';
    this.fire.style.left = this.rannum(0, this.cw - this.fire.offsetWidth) + 'px';
    this.fire.style.top = this.rannum(0, this.ch - this.fire.offsetHeight) + 'px';
    document.body.appendChild(this.fire);
    this.firemove();
}
//图片运动
Firework.prototype.firemove = function() {
    var _this = this;
    buffermove(this.fire, {
        left: this.rannum(0, this.cw - this.fire.offsetWidth),
        top: this.rannum(0, this.ch - this.fire.offsetHeight)
    }, function() {
        _this.firemove();
    });
}
//随机数
Firework.prototype.rannum = function(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}
for (var i = 0; i < 60; i++) {
    new Firework().createfirework();
}

五. 外部js文件代码

function getstyle(obj, attr) {
    if (window.getComputedStyle) {
        //标准
        return getComputedStyle(obj)[attr]
    } else {
        //IE
        return obj.currentStyle[attr]
    }
}

function buffermove(obj, json, fn) {
    var speed = 0
    clearInterval(obj.timer)
    obj.timer = setInterval(function() {
        var bstop = true
        for (var attr in json) {
            var currentvalue = 0
            if (attr === 'opacity') {
                currentvalue = Math.round(getstyle(obj, attr) * 100)
            } else {
                currentvalue = parseInt(getstyle(obj, attr))
            }
            speed = (json[attr] - currentvalue) / 100
            speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed)
            if (currentvalue != json[attr]) {
                if (attr === 'opacity') {
                    obj.style.opacity = (currentvalue + speed) / 100
                    obj.style.filter = 'alpha(opacity:' + (currentvalue + speed) + ')'
                } else {
                    obj.style[attr] = currentvalue + speed + 'px'
                }
                bstop = false
            }
        }
        if (bstop) {
            clearInterval(obj.timer)
            fn && fn()
        }
    }, 50)
}

六. 完整的代码和图片获取

完整的代码和图片获取方式

链接:https://pan.baidu.com/s/19vvZXOTmAHnqZIxwNS_Igg?pwd=yhc6 
提取码:yhc6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用DataSecurity Plus监控Windows文件完整性

使用我们的文件完整性监控软件DataSecurity Plus&#xff0c;与精明的黑客&#xff0c;突发的恶意软件爆发以及挑战法规要求进行战斗。这种先进的工具还有助于生成可操作的报表&#xff0c;提供基于严重性的告警&#xff0c;简化合规性要求&#xff0c;发现妥协指标&#xff0c…

ip route常用语法

官方手册参考&#xff1a; ip-rule(8) - Linux manual page #interface ens11f0 #Bring up an interface ip link set dev ens11f0 up ip addr add 11.126.48.231/27 dev ens11f0#Use table 101 with metrics 101 for specific interface routing #Each interface should use i…

科技云报道:信创基础设施迎来“升级潮”,可持续性架构成关键技术

科技云报道原创。 如果说单一领域的技术突破是河流&#xff0c;信创毫无疑问是汪洋大海。 随着“数字中国”战略的明确&#xff0c;数字化转型进程加速&#xff0c;信创产业成为国家战略布局的重点领域之一&#xff0c;是缩短科技发展周期以及国内外科技差距的一剂良方。 2…

立根铸魂,崛起数智时代 | 麒麟信安携手openEuler 共推操作系统产业腾飞发展!

操作系统产业峰会2022于12月28日在线上举办。本次峰会由开放原子开源基金会、中国软件行业协会、CCF&#xff08;中国计算机学会&#xff09;开源专委会、绿色计算产业联盟、中关村科学城管委会共同主办&#xff0c;华为、麒麟信安等单位共同协办&#xff0c;以“立根铸魂 崛起…

数据结构基础:P1-基本概念----编程作业02:Maximum Subsequence Sum

本系列文章为浙江大学陈越、何钦铭数据结构学习笔记&#xff0c;前面文章链接如下&#xff1a; 数据结构基础&#xff1a;P1-基本概念 数据结构基础&#xff1a;P1-基本概念----编程作业01&#xff1a;最大子列和问题 文章目录一、题目描述二、代码实现一、题目描述 题目描述&…

【408篇】C语言笔记-第十九章(C语言语法进阶)

文章目录第一节&#xff1a;条件运算符与逗号运算符1. 条件运算符2. 逗号运算符第二节&#xff1a;自增自减运算符1. 自增自减运算符2. 自增自减运算符与取值运算符第三节&#xff1a;位运算符1. 位运算符2. 异或运算符实例解析第四节&#xff1a;switch和do while讲解1. switc…

使用Bigemap计算挖填土石方量

1、 Bigemap GIS Office 第一步&#xff1a; 用Bigemap GIS Office导出待计算区域的高程数据&#xff1a; 1.1 打开Bigemap GIS Office选择目标区域&#xff1a;如下图&#xff1a; 1.2选择的目标区域的高程数据&#xff08;NASA, TIF, 高精度高程数据&#xff09; 1…

【SSM框架】MyBatis核心配置文件详解

1.MyBatis核心配置文件之environments <!--environments&#xff1a;配置多个连接数据库的环境 属性&#xff1a;default&#xff1a;设置默认使用的环境的id --><environments default"development"><!--environment&#xff1a;配置某个具体的环境 …

C++ opencv形态学、轮廓查找、特征检测和图像分割

C opencv形态学、轮廓查找、特征检测和图像分割形态学基本处理方法二值化全局二值化局部二值化腐蚀和膨胀图像形态学运算开运算闭运算顶帽黑帽代码图像轮廓寻找轮廓绘画轮廓轮廓的面积和周长多边形逼近和凸包多边形逼近凸包外接矩形最小外接矩形最大外接矩形案例车辆检测&#…

召回和排序模型中的用户行为序列的建模

1. 概述 用户在使用一个APP或者浏览网页的过程中&#xff0c;都是由一些行为构成的&#xff0c;以资讯类为例&#xff0c;通常对一个帖子感兴趣&#xff0c;对于感兴趣的帖子&#xff0c;通常会点击进入查看&#xff0c;或者点击收藏或者对其进行评论&#xff0c;这一系列行为…

电脑录屏怎么录全屏?win10电脑如何录屏

随着互联网的发展&#xff0c;线上办公以及网课越来越频繁&#xff1b;线上办公或者网课都是使用电脑来完成工作和学习的&#xff1b;那Win10电脑如何录屏以及电脑录屏怎么录屏全屏呢&#xff1f;接下来给大家分享三个电脑录制全屏的教程方法给大家&#xff1b; win10录制全屏方…

【MySQL】绿色版下载配置教程(Windows)

文章目录下载MySQL压缩包1 创建my.ini文件2 配置mysql环境变量3 在终端执行命令下载MySQL压缩包 https://dev.mysql.com/downloads/mysql/ 1 创建my.ini文件 模板内容如下 [mysqld] basedir D:\\Program Files\\mysql # 设置mysql的安装目录 datadir D:\\Program Files\\m…

红黑树简介

一、红黑树 1、概念 红黑树&#xff08;Red Black Tree&#xff09; 是一种自平衡二叉搜索树。它在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是 Red或 Black。 通过任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其…

为什么生产MES系统对工厂管理如此重要?

随着生产业务、计算机技术的发展&#xff0c;MES管理系统的定义也是在不断的变化。但是&#xff0c;计划调度、质量管理、生产执行以及数据&#xff08;设备&#xff0c;产品信息&#xff09;采集&#xff0c;一直都是MES的核心功能。 工业物联网&#xff0c;对于制造业来说并…

数据结构--顺序表、链表、栈、队列、树、文件(visual studio可运行)

顺序表的顺序存储&#xff08;增删查&#xff09; #include <stdio.h> #include <stdlib.h> #define MaxSize 50 typedef int ElemType;//保证顺序表可以存储任何类型 //静态分配 typedef struct{ ElemType data[MaxSize];//定义的数组&#xff0c;用来存元素…

MergeTree写入查询流程分析

基础概念回顾 前面几节我们分别详细分析了分区&#xff0c;索引&#xff0c;数据存储相关原理&#xff0c;这些组件配合在一起给Clickhouse数据库带来非常高效的查询性能。前面的文章也单独介绍了这几个组件。接下来&#xff0c;就分别从写入过程、查询过程&#xff0c;以及数…

数字孪生水电站,三维组态助力发电流程优化

从大禹治水到三峡大坝的建造&#xff0c;人类为控制和调配自然界的地表水和地下水&#xff0c;修建了许多的水利工程。对水资源进行了广泛的开发利用&#xff0c;诸如农业灌溉、工业和生活用水、水力发电、航运、港口运输、淡水养殖、旅游等。 将图扑软件与 GIS、粒子仿真、虚拟…

在re:Invent 2022大会打球、喝酒?没错!

编辑&#xff5c;阿冒虽然距离去拉斯维加斯参加亚马逊云科技re:Invent 2022大会&#xff0c;差不多已经过去了一个月&#xff0c;不过时不时仍有熟稔的朋友来问我&#xff0c;你在展区球场上如何如何&#xff0c;巴拉巴拉……为啥他们对我的行动如此了解&#xff1f;其实&#…

effective C++读书笔记

目录 用const,enum,inline去替换#define 尽可能去使用const 确保对象使用前已被初始化 这是effective C中的第一大章节&#xff1a;让自己习惯c 用const,enum,inline去替换#define 当用使用这样的代码&#xff1a; #define ASPECT RATIO 1.653 记号名称ASPECT RATIO可能未…

图像风格迁移---基于多适应网络的任意风格传输

ABSTRACT 任意风格转换是一个具有研究价值和应用前景的重要课题。给定一个内容图像和引用的风格绘画&#xff0c;一个所需的风格转换将使用风格绘画的色彩色调和生动的笔画模式渲染内容图像&#xff0c;同时保持详细的内容结构信息。风格迁移方法首先学习内容和内容和风格引用…