iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用JavaScript实现新年贺卡特效
  • 698
分享到

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

2023-06-28 17:06:31 698人浏览 八月长安
摘要

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

小编给大家分享一下如何使用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实现新年贺卡特效”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用JavaScript实现新年贺卡特效

本文链接: https://www.lsjlt.com/news/321008.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 如何使用JavaScript实现新年贺卡特效
    小编给大家分享一下如何使用JavaScript实现新年贺卡特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!动图演示一款超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,该html页面还有交互...
    99+
    2023-06-28
  • 基于JavaScript实现新年贺卡特效
    目录动图演示主要代码css样式Javascirpt动图演示 一款超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,该html页面还有交互效果,点击鼠标就...
    99+
    2024-04-02
  • 使用javascript如何实现一个下雪特效
    使用javascript如何实现一个下雪特效?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做...
    99+
    2023-06-14
  • JavaScript如何实现时钟特效
    这篇“JavaScript如何实现时钟特效”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript如何实现时钟特效...
    99+
    2023-07-02
  • javascript如何实现哪些特效
    这篇文章主要介绍javascript如何实现哪些特效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! javascript能做的特效有:1、轮播图;2、表单...
    99+
    2024-04-02
  • 使用JavaScript实现轮播图特效
    本文实例为大家分享了JavaScript实现轮播图特效的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <hea...
    99+
    2024-04-02
  • JavaScript+CSS如何实现相册特效
    这篇文章给大家分享的是有关JavaScript+CSS如何实现相册特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。嗯 就是这样一个例子,视频学到的一个特效,实际用处并不大,但是...
    99+
    2024-04-02
  • 使用小程序实现年龄渐变特效
    一、讲在前面 二、实现流程及前期准备 2.1 实现流程 2.2 请求说明 2.3 请求示例 三、开发步骤 3.1 资源申请 3.2 小程序创建 3.3 上传...
    99+
    2023-08-17
    小程序 微信 微信小程序 原力计划
  • JavaScript中canvas如何实现流星特效
    小编给大家分享一下JavaScript中canvas如何实现流星特效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、控制透明度变化函数function easeInQuad(curtime,begin,end,...
    99+
    2023-06-15
  • JavaScript如何实现鼠标拖尾特效
    这篇文章主要介绍了JavaScript如何实现鼠标拖尾特效,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。看完这个保证你有手就行,制作各种好看的小尾巴!全部代码如下,看注释可以...
    99+
    2023-06-22
  • JavaScript如何实现年份轮播选择效果
    这篇文章主要讲解了“JavaScript如何实现年份轮播选择效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现年份轮播选择效果”吧!前言用 js 实现一个年份轮换...
    99+
    2023-06-27
  • 如何使用html5实现的便签特效
    这篇文章主要介绍如何使用html5实现的便签特效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 代码如下: <!DOCTYPE html PUBLIC "-//W...
    99+
    2024-04-02
  • 如何使用CSS实现毛玻璃特效
    这篇文章主要介绍“如何使用CSS实现毛玻璃特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用CSS实现毛玻璃特效”文章能帮助大家解决问题。一、backdrop-filter 是金手指吗?毛玻...
    99+
    2023-06-29
  • JavaScript插件如何实现Tab选项卡效果
    这篇文章将为大家详细讲解有关JavaScript插件如何实现Tab选项卡效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,来看看最终效果:这是一款普通的Tab选项卡...
    99+
    2024-04-02
  • 使用javascript怎么实现一个轮播特效
    本篇文章给大家分享的是有关使用javascript怎么实现一个轮播特效,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。javascript是一种什么语言javascript是一种...
    99+
    2023-06-14
  • 如何使用JavaScript实现钟表效果
    小编给大家分享一下如何使用JavaScript实现钟表效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下<!DOCTYPE html><html lang="en...
    99+
    2023-06-26
  • 如何使用JavaScript实现拖拽效果
    这篇文章主要介绍如何使用JavaScript实现拖拽效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简...
    99+
    2024-04-02
  • 如何使用JavaScript实现弹幕效果
    这篇文章主要为大家展示了“如何使用JavaScript实现弹幕效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用JavaScript实现弹幕效果”这篇文...
    99+
    2024-04-02
  • 利用Vue实现卡牌翻转的特效
    目录前言实现鼠标移入选中效果卡片翻转效果完整代码结语前言 今天是正月初九,也是活动的倒数第二天,复工都三天了,而我三篇春节文章还没写完,实在是太混了!这次带来的是一个春节抽福卡页面,...
    99+
    2024-04-02
  • 基于JavaScript如何实现动态雨滴特效
    今天小编给大家分享一下基于JavaScript如何实现动态雨滴特效的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。演示技术栈介...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作