当前位置:   article > 正文

js+css3简易实现2023新年快乐全屏满天星动画特效_js新年特效

js新年特效

目录

⭐ 前言

一、效果图

二、代码实现 

2.1 html

2.2 CSS

2.3. JS

⭐ 预览


⭐ 前言

js+css3全屏星星闪烁背景2023新年快乐动画特效,文字还有3D立体效果。其中,利用Math.random()方法,实现满天星的效果,着实让人眼前一亮。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。

好了,话不多说,先看效果图,如下:

一、效果图

二、代码实现 

2.1 html

* index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>js+css3全屏2023新年快乐动画特效</title>
  6. <link rel="stylesheet" href="css/style.css" />
  7. </head>
  8. <body>
  9. <section class="section">
  10. <h2 class="section__title">Happy New Year<br /><span>2023</span></h2>
  11. </section>
  12. <script src="js/script.js"></script>
  13. </body>
  14. </html>

2.2 CSS

* style.css

  1. * {
  2. /* 采用怪异模式下的盒模型:元素的总高度和宽度包含内边距和边框(padding与border) */
  3. box-sizing: border-box;
  4. margin: 0;
  5. padding: 0;
  6. }
  7. body {
  8. /* 没有滚动条 */
  9. overflow: hidden;
  10. }
  11. .section {
  12. display: flex;
  13. justify-content: center;
  14. align-items: center;
  15. position: relative;
  16. min-height: 100vh;
  17. background: linear-gradient(135deg, #111, #222, #111);
  18. }
  19. .section::before {
  20. content: "";
  21. position: absolute;
  22. width: 30vw;
  23. height: 30vw;
  24. /* 红色边框 */
  25. border: 5vw solid #ff1062;
  26. /* 圆形边框 */
  27. border-radius: 50%;
  28. /* 为边框添加2个下拉阴影 */
  29. box-shadow: 0 0 0 1vw #222, 0 0 0 1.3vw #fff;
  30. }
  31. .section .section__title {
  32. position: absolute;
  33. transform: skewY(-7deg);
  34. z-index: 10;
  35. color: #fff;
  36. text-align: center;
  37. font-size: 9vw;
  38. line-height: 2em;
  39. text-shadow: 1px 1px 0 #ccc, 2px 2px 0 #ccc, 3px 3px 0 #ccc, 4px 4px 0 #ccc,
  40. 5px 5px 0 #ccc, 10px 10px 0 rgba(0, 0, 0, 0.2);
  41. animation: floating 5s ease-in-out infinite;
  42. }
  43. .section .section__title span {
  44. text-shadow: 1px 1px 0 #ccc, 2px 2px 0 #ccc, 3px 3px 0 #ccc, 4px 4px 0 #ccc,
  45. 5px 5px 0 #ccc, 6px 6px 0 #ccc, 7px 7px 0 #ccc, 8px 8px 0 #ccc,
  46. 9px 9px 0 #ccc, 20px 20px 0 rgba(0, 0, 0, 0.2);
  47. font-weight: 700;
  48. font-size: 3em;
  49. }
  50. .section i {
  51. position: absolute;
  52. background: #fff;
  53. border-radius: 50%;
  54. box-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 40px #fff, 0 0 80px #fff;
  55. animation: animate linear infinite;
  56. }
  57. @keyframes floating {
  58. 0%,
  59. 100% {
  60. transform: skewY(-7deg) translate(0, -20px);
  61. }
  62. 50% {
  63. transform: skewY(-7deg) translate(0, 20px);
  64. }
  65. }
  66. /* 利用透明度设置星星明暗变化的动画效果 */
  67. @keyframes animate {
  68. 0% {
  69. opacity: 0;
  70. }
  71. 10% {
  72. opacity: 1;
  73. }
  74. 90% {
  75. opacity: 1;
  76. }
  77. 100% {
  78. opacity: 0;
  79. }
  80. }

2.3. JS

* script.js

  1. const stars = () => {
  2. const count = 200;
  3. const section = document.querySelector('.section');
  4. let i = 0;
  5. while (i < count) {
  6. // 在内存中创建一个新的空元素对象,如i或是div
  7. const star = document.createElement('i');
  8. // 定义变量x和y :通过Math.random()方法随机的使星星出现在不同位置,当然星星的定位要在文档显示区内
  9. const x = Math.floor(Math.random() * window.innerWidth);
  10. const y = Math.floor(Math.random() * window.innerHeight);
  11. const size = Math.random() * 4;
  12. // 让星星始终会在网页最左最顶端出现,通过想x和y的定位,我们要让它出现在页面各个不同的位置
  13. star.style.left = x + 'px';
  14. star.style.top = y + 'px';
  15. // 利用Math.random()这个方法来随机取星星的大小:为每颗星星设置随机的宽高范围为[0,5)
  16. star.style.width = 1 + size + 'px';
  17. star.style.height = 1 + size + 'px';
  18. const duration = Math.random() * 2;
  19. // 设置持续时间
  20. // js中除了减法计算之外,不允许随便写-。因为会混淆。所以,DOM标准规定,所有带-的css属性名,一律去横线变驼峰
  21. // css属性animation-duration,在js中改写为驼峰形式:animationDuration
  22. star.style.animationDuration = 2 + duration + 's';
  23. // 设置延迟
  24. star.style.animationDelay = 2 + duration + 's';
  25. // 将新元素添加到DOM树:把新创建的节点追加到父元素下所有直接子元素的结尾
  26. section.appendChild(star);
  27. i++;
  28. }
  29. }
  30. // 调用函数
  31. stars();

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/90859
推荐阅读

  • 蓝桥Web应用开发【国赛班】-CSS3新特性【练习一:属性有效性验证】蓝桥Web应用开发-CSS3新特性【练习一:属性有效性验证】练习一:属性有效性验证页面上有一个邮箱输入框,当你的输入满足邮箱格式时,输入框的背景颜色为绿色;当你的输入... [详细]

  • 表单概述 表单信息输入 单行文本输入框密码框文本框 关于在不同浏览器中显示宽度不同的解决问题 关于IE浏览器中默认文本框和密码框显示长度不一的问题 复选框单选按钮 提交按钮重置按钮和普通按钮 图像提交按钮 按钮组合案例 文件选择框及隐... [详细]

  • 前言CSS3边框 1.border-radius圆角边框 2.box-shadow边框阴影 3.border-image边框图像CSS3转换transform属性 1.CSS32D转换总结[HTML]Web前端开发技术21(HTML5、CS... [详细]

  • 前言CSS3动画animationCSS3动画animation子属性设置CSS3多列属性CSS3文本效果 1.文本阴影text-shadow属性 2.文本换行text-wrap属性 3.控制换行word-wrap属性 4.文本溢出text... [详细]

  • 掌握HTML标签基本语法(标题、段落、换行、水平线、文本格式、图像、路径、超链接、音频、视频、注释),能够独立布局文章页HTML5+CSS3+移动web——HTML基础目录一、标签语法HTML的基本框架1.标题标签2. 段落标签3... [详细]

  • 代码HTML新年代码新年快乐新年大吉。_html新年快乐html新年快乐效果图预览:html界面代码如下:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http... [详细]

  • 基于制作了一个小网页,有简单的用户登录功能,蛋糕祝福照片烟花等小功能;稍加修改就可以用来表白给好朋友送祝福祝福新年等。_编写生日快乐登录可以存视频的html文件编写生日快乐登录可以存视频的html文件基于HTML+CSS+Ja... [详细]

  • html+css+js生日快乐网站模板(多页面功能版本+音乐)❤520/表白/七夕情人节/求婚❤专用炫酷动画网页的源代码HTML5+CSS3+JS)程序员爱情❤520/表白/七夕情人节/求婚❤专用html5+css3+js生日快乐网站模板... [详细]

  • 【实例简介】是对之前一个资源的补充,之前少了一些内容,但是没办法修改所以就重传了一份。多了一张图片和一个帮助文档,介绍怎么修改登陆密码和替换图片,其它也没啥不一样23333.下面是原文档的描述:自己给好朋友制作的一个生日快乐的网站,做完之后... [详细]

  • 生日快乐网站模板HTML(精品制作)(HTML5+CSS3+JS)最近姐姐的生日快到了,想着也没有什么礼物送给她,恰好因为CTF的原因学了点HTML和JavaScript,就做了两个网页,当然因为网页(wo)很(ye)简(bu)单(hui)... [详细]

  • 新年快乐!这是一个动态烟花代码的例子: