我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用JavaScript实现新年贺卡特效

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用JavaScript实现新年贺卡特效

小编给大家分享一下如何使用JavaScript实现新年贺卡特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

动图演示

一款超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,该html页面还有交互效果,点击鼠标就会呈现烟花绽放的特效,唯美不过如此。图片可以换成自己喜欢的夜景或人物都可以。

如何使用JavaScript实现新年贺卡特效

主要代码

图片选择引入:

html, body {            margin: 0;            padding: 0;            overflow: hidden;            background: #000;            font-family: Montserrat, sans-serif;            background-image: url(img/pexels-photo-219692.jpeg);            background-size: cover;            background-position: center;        }

如何使用JavaScript实现新年贺卡特效

css样式

html, body {            margin: 0;            padding: 0;            overflow: hidden;            background: #000;            font-family: Montserrat, sans-serif;            background-image: url(img/pexels-photo-219692.jpeg);            background-size: cover;            background-position: center;        }         canvas {            mix-blend-mode: lighten;            cursor: pointer;        }         #hero {            display: inline;            position: absolute;            top: 50%;            left: 50%;            transform: translate(-50%, -50%);            mix-blend-mode: color-dodge;        }         #year {            font-size: 30vw;            color: #d0d0d0;            font-weight: bold;        }         #timeleft {            color: #fbfbfb;            font-size: 2.5vw;            text-align: center;            font-family: Lora, serif;        }

Javascirpt

const canvas = document.createElement('canvas'),        context = canvas.getContext('2d'),        width = canvas.width = window.innerWidth,        height = canvas.height = window.innerHeight,        HalfPI = Math.PI / 2,        gravity = vector.create(0, 0.35),        year = document.getElementById('year'),        timeleft = document.getElementById('timeleft'),        newyear = new Date('01/01/2020');     let objects = [],        startFireworks = false,        newYearAlready = false;     function renderTimeLeft() {        let date = new Date();         let delta = Math.abs(newyear - date) / 1000;         let hours = Math.floor(delta / 3600) % 24;        delta -= hours * 3600;         let minutes = Math.floor(delta / 60) % 60;        delta -= minutes * 60;         let seconds = Math.floor(delta % 60) + 1;         let string = '';         let DaysLeft = Math.floor((newyear - date) / (1000 * 60 * 60 * 24)),            HoursLeft = `${hours} ${hours > 1 ? 'hours' : 'hour'}`,            MinutesLeft = `${minutes} ${minutes > 1 ? 'minutes' : 'minute'}`,            SecondsLeft = `${seconds} ${seconds > 1 ? 'seconds' : 'second'}`;         if (hours > 0) string = `${HoursLeft} &amp; ${MinutesLeft}`;else        if (minutes > 0) string = `${MinutesLeft} &amp; ${SecondsLeft}`;else            string = `${SecondsLeft}`;         if (DaysLeft > 0) string = DaysLeft + ' days, ' + string;        string += ' until 2020';         timeleft.innerHTML = string;    }     renderTimeLeft();     setInterval(function () {        let date = new Date();        if (date >= newyear) {            if (!newYearAlready) {                year.innerHTML = '2022';                startFireworks = true;                timeleft.innerHTML = 'Happy New Year!';            }             newYearAlready = true;        } else renderTimeLeft();    }, 500);      document.body.appendChild(canvas);     function random255() {        return Math.floor(Math.random() * 100 + 155);    }     function randomColor() {        let r = random255(),            g = random255(),            b = random255();        return `rgb(${r}, ${g}, ${b})`;    }     class PhysicsBody {        constructor() {            objects.push(this);        }        PhysicsUpdate() {            this.lastPosition = this.position.duplicate();            this.position.addTo(this.velocity);            this.velocity.addTo(gravity);        }        deleteObject() {            objects[objects.indexOf(this)] = undefined;        }}      class firework extends PhysicsBody {        constructor() {            super();            this.position = vector.create(Math.random() * width, height);             let Velocity = vector.create(0, 0);            Velocity.setLength(Math.random() * 10 + 15);            Velocity.setAngle(Math.PI * 1.35 + Math.random() * Math.PI * 0.30);            this.velocity = Velocity;             this.trail = Math.floor(Math.random() * 4) != 1;            this.trailColor = this.trail ? randomColor() : undefined;            this.trailWidth = 2;             this.TimeCreated = new Date().getTime();            this.TimeExpired = this.TimeCreated + (Math.random() * 5 + 7) * 100;             this.BlastParticleCount = Math.floor(Math.random() * 50) + 25;            this.funky = Math.floor(Math.random() * 5) == 1;             this.exposionColor = randomColor();        }         draw() {            context.strokeStyle = this.trailColor;            context.lineWidth = this.trailWidth;             let p = this.position,                lp = this.lastPosition;             context.beginPath();            context.moveTo(lp.getX(), lp.getY());            context.lineTo(p.getX(), p.getY());            context.stroke();        }         funkyfire() {            var funky = this.funky;            for (var i = 0; i < Math.floor(Math.random() * 10); i++) {                new BlastParticle({ firework: this, funky });            }        }         explode() {            var funky = this.funky;            for (var i = 0; i < this.BlastParticleCount; i++) {                new BlastParticle({ firework: this, funky });            }            this.deleteObject();        }         checkExpire() {            let now = new Date().getTime();            if (now >= this.TimeExpired) this.explode();        }         render() {            if (this.trail) this.draw();            if (this.funky) this.funkyfire();            this.checkExpire();        }}      class BlastParticle extends PhysicsBody {        constructor({ firework, funky }) {            super();            this.position = firework.position.duplicate();             let Velocity = vector.create(0, 0);            if (!this.funky) {                Velocity.setLength(Math.random() * 6 + 2);                Velocity.setAngle(Math.random() * Math.PI * 2);            } else {                Velocity.setLength(Math.random() * 3 + 1);                Velocity.setAngle(firework.getAngle + Math.PI / 2 - Math.PI * 0.25 + Math.PI * .5);            }             this.velocity = Velocity;             this.color = firework.exposionColor;             this.particleSize = Math.random() * 4;             this.TimeCreated = new Date().getTime();            this.TimeExpired = this.TimeCreated + (Math.random() * 4 + 3.5) * 100;        }         draw() {            context.strokeStyle = this.color;            context.lineWidth = this.particleSize;            let p = this.position,                lp = this.lastPosition;             context.beginPath();            context.moveTo(lp.getX(), lp.getY());            context.lineTo(p.getX(), p.getY());            context.stroke();        }         checkExpire() {            let now = new Date().getTime();            if (now >= this.TimeExpired) this.deleteObject();        }         render() {            this.draw();            this.checkExpire();        }}      document.body.addEventListener('mousedown', function (e) {        let color = randomColor();        for (var i = 0; i < Math.floor(Math.random() * 20) + 25; i++) {            new BlastParticle({                firework: {                    position: vector.create(e.pageX, e.pageY),                    velocity: vector.create(0, 0),                    exposionColor: color },                 funky: false });         }    });     setInterval(function () {        if (!startFireworks) return;        for (var i = 0; i < Math.floor(Math.random() * 4); i++) {            new firework();        }    }, 500);     function cleanupObjects() {        objects = objects.filter(o => o != undefined);    }     function loop() {        context.fillStyle = 'rgba(0,0,0,0.085)';        context.fillRect(0, 0, width, height);         let unusedObjectCount = 0;        objects.map(o => {            if (!o) {unusedObjectCount++;return;}            o.PhysicsUpdate();            o.render();        });        if (unusedObjectCount > 100) cleanupObjects();         requestAnimationFrame(loop);    }     loop();

javascript是一种什么语言

javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相对安全性并广泛用于客户端网页开发的脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言。它主要用来给HTML网页添加动态功能,现在JavaScript也可被用于网络服务器,如Node.js。

看完了这篇文章,相信你对“如何使用JavaScript实现新年贺卡特效”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用JavaScript实现新年贺卡特效

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用JavaScript实现新年贺卡特效

小编给大家分享一下如何使用JavaScript实现新年贺卡特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!动图演示一款超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,该html页面还有交互
2023-06-28

使用javascript如何实现一个下雪特效

使用javascript如何实现一个下雪特效?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做
2023-06-14

JavaScript如何实现时钟特效

这篇“JavaScript如何实现时钟特效”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript如何实现时钟特效
2023-07-02

JavaScript如何实现鼠标拖尾特效

这篇文章主要介绍了JavaScript如何实现鼠标拖尾特效,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。看完这个保证你有手就行,制作各种好看的小尾巴!全部代码如下,看注释可以
2023-06-22

JavaScript中canvas如何实现流星特效

小编给大家分享一下JavaScript中canvas如何实现流星特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、控制透明度变化函数function easeInQuad(curtime,begin,end,durat
2023-06-15

如何使用CSS实现毛玻璃特效

这篇文章主要介绍“如何使用CSS实现毛玻璃特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用CSS实现毛玻璃特效”文章能帮助大家解决问题。一、backdrop-filter 是金手指吗?毛玻
2023-06-29

如何使用JavaScript实现钟表效果

小编给大家分享一下如何使用JavaScript实现钟表效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下
2023-06-26

使用javascript怎么实现一个轮播特效

本篇文章给大家分享的是有关使用javascript怎么实现一个轮播特效,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。javascript是一种什么语言javascript是一种
2023-06-14

基于JavaScript如何实现动态雨滴特效

今天小编给大家分享一下基于JavaScript如何实现动态雨滴特效的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。演示技术栈介
2023-07-02

使用javascript如何为鼠标设置特效

本篇文章给大家分享的是有关使用javascript如何为鼠标设置特效,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript是什么JS是JavaScript的简称,它
2023-06-14

JavaScript如何实现五种不同烟花特效

本文将为大家详细介绍“JavaScript如何实现五种不同烟花特效”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“JavaScript如何实现五种不同烟花特效”能够给你意想不到的收获,请大家跟着小编的思路慢慢深
2023-06-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录