今天是七夕节、用100行代码下一场流星雨、许一个愿、来一场美丽的邂逅

这个程序的核心使用CSS实现,基本原理就是利用CSS控制若干个div,本例是50个,当然,你可以弄更多的div,不过适当的流星是浪漫,如果流行太多了,恐龙就要灭绝了!

现在说一下基本实现原理,首先用js动态产生若干个div,看下面的代码:

var stars = '';
for(var i = 0; i < 50;i++) {var starTailLengthStyle = "--star-tail-length: " + (5 + Math.random() * 4) + "em;"var topOffsetStyle = "--top-offset:"  + (4 + Math.random() * 100) + "vh;"var fallDurationStyle = "--fall-duration:" + (2 + Math.random() * 10) + "s;"var fallDelay = "--fall-delay:" + Math.random() * 5 + "s;"stars += "<div class='star' style='" +starTailLengthStyle +topOffsetStyle +fallDurationStyle +fallDelay + "'></div>\r\n";;
}
document.body.innerHTML="<div class='stars'>" + stars + "</div>";

这段代码产生了51个div,其中1个div是最外层的div,另外50个div要放在这个div中。最外层div的class是stars,其他50个div的class是star。 另外还在style中加入了一些属性,用于随机控制每一颗流行的属性,如尾巴长短,跌落时间等。

接下来在添加下面的样式用来描述stars,用来控制星星整体的初始位置。

.stars {position: fixed;top: 0;left: 0;width: 100%;height: 120%;transform: rotate(-45deg);
}

然后编写下面的star样式,这些样式用来控制每一颗星星的初始状态,var描述相关的变量。

.star {--star-color: var(--primary-color);--star-tail-length: 6em;--star-tail-height: 2px;--star-width: calc(var(--star-tail-length) / 6);--fall-duration: 9s;--tail-fade-duration: var(--fall-duration);position: absolute;top: var(--top-offset);left: 1700px;width: var(--star-tail-length);height: var(--star-tail-height);color: var(--star-color);background: linear-gradient(45deg, currentColor, transparent);border-radius: 50%;filter: drop-shadow(0 0 6px currentColor);transform: translate3d(70em, 0, 0);animation: fall var(--fall-duration) var(--fall-delay) linear infinite, tail-fade var(--tail-fade-duration) var(--fall-delay) ease-out infinite;
}

剩下的就是一些控制流星跌落过程中样式的,如下面的代码用来控制流星尾部在跌落过程中的变化。

@keyframes tail-fade {0%, 50% {width: var(--star-tail-length);opacity: 1;}70%, 80% {width: 0;opacity: 0.6;}100% {width: 0;opacity: 0;}
}

今天是七夕节、用100行CSS代码下一场流星雨、许一个愿、来一场美丽的邂逅相关推荐

  1. 100行Python代码,快速搭建一个电影展示网站

    学习Python有一段时间了,与其在家无所事事,不如宅家贡献学习两不误.很多人学习 Python都是因为它简单,却功能强大.但是学着学者就从入门到放弃了,主要是没有目标. 比如你想做一个爬虫,或者想写 ...

  2. 100行JavaScript代码实现JavaScript

    先看效果: 100行JavaScript代码实现经典游戏俄罗斯方块 新建一个html文件,复制如下代码,用浏览器打开即可: <!doctype html> <html> < ...

  3. html表格垂直居中的CSS代码,使用3行CSS代码使任何元素垂直居中

    在页面设计中,使元素水平居中是比较简单的事情.但是如何使元素垂直居中呢?其实,我们通过3行CSS代码(不包括添加浏览器厂商所需的代码)就可以使任何元素垂直居中.秘诀就是使用transform: tra ...

  4. github怎么为代码着色_如何仅用100行神经网络代码为黑白照片着色

    github怎么为代码着色 by Emil Wallner 埃米尔·沃尔纳(Emil Wallner) 如何仅用100行神经网络代码为黑白照片着色 (How to colorize black &am ...

  5. 100行php代码实现加密端口转发

    2019独角兽企业重金招聘Python工程师标准>>> 如题,这个是100行php代码实现代理上网最终篇,玩具性质,个人用可以,因为1性能不高,2加解密IV重复使用. 用法就是soc ...

  6. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)

    前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...

  7. sql行数少于10_如何用少于100行的代码创建生成艺术

    sql行数少于10 by Eric Davidson 埃里克·戴维森(Eric Davidson) 如何用少于100行的代码创建生成艺术 (How to Create Generative Art I ...

  8. c语言微信挑一挑编程,100行python代码实现微信跳一跳辅助程序

    写在前面 分享一下今天下午用python写的"跳一跳"小游戏的辅助程序.之前是准备用树莓派操控一个"机械手指"来代替人的触摸操作,但该方案还在酝酿中,实现了再分 ...

  9. 100行python代码做一个程序_100行python代码实现微信跳一跳辅助程序

    写在前面 分享一下今天下午用python写的"跳一跳"小游戏的辅助程序.之前是准备用树莓派操控一个"机械手指"来代替人的触摸操作,但该方案还在酝酿中,实现了再分 ...

最新文章

  1. redis-deskmanager 连不上 虚拟机 - centos redis
  2. 给别人电脑永远设置个别人删不掉的管理员用户
  3. python【力扣LeetCode算法题库】225-用队列实现栈
  4. DB2 导入导出总结
  5. IOS开发之--UIScrollView pagingEnabled自定义翻页宽度
  6. ejb 2.1 jboss_JBoss AS7 JNDI和EJB 3.1命名更改
  7. 相对于通过木马传播方式获得的C++用户数据
  8. 成为被 BAT 疯抢的数据分析师,要如何精进技术?
  9. postman如何导入API.json文件 - 图文教程
  10. ufs2.0测试软件,UFS 2.1和UFS 2.0差距到底多大?跑分还有很多学问
  11. asp.net core 系列 20 EF基于数据模型创建数据库
  12. 自动生成 Makefile 的全过程详解
  13. 排除表_维修电工十年经验分享:常见电气故障及排除故障方法
  14. python图合并_Python-numpy实现灰度图像的分块和合并方式
  15. 三星c7 linux驱动,三星c7手机驱动(三星c7驱动程序)V1.5.55.2 专业版
  16. MYSQL initialize、install 、启动服务报错解决方法
  17. 微信小程序中集成有赞UI自定义Tabbar组件
  18. 基于Java EE的网上书店系统
  19. Atom处理器喜迎周岁生日 主频达2GHz
  20. java中jlaber用法_laber的for属性

热门文章

  1. 软件测试基础知识总结(一)
  2. 中国AI发展报告2018:中国AI专利全球第一,高水平论文最多
  3. 使用这45个小技巧,帮助你写出更优雅的代码
  4. Android 系统如何预装第三方应用以及常见问题汇集
  5. 为什么使用HTTP代理需谨慎?
  6. Spring boot实现代理服务器
  7. 关于某蔡傅里叶变换课的思考(元旦前更新)
  8. Linux内存管理(四):paging_init分析
  9. 常用Scheme收录大全 『精』!!!
  10. Switch相关代码总结