css 自定义属性和雪花飘落效果

2023-10-14 05:30

本文主要是介绍css 自定义属性和雪花飘落效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接: css 自定义属性和雪花飘落效果

上一篇: css resize属性将div变成可以拖动修改大小配合object-fit实现图片大小适应的效果

下一篇: css 伪类 transform transition实现一个比较好看的下划线过渡效果

最近看到一个雪花的效果, 里面用到了自定义属性, 学习了

https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties

up-f5eab1c59f297bedbd4546d215a8094fed8.gif

自定义变量可以在父节点定义在子节点使用, 所以一般在根节点定义, 然后在所有节点都能使用了

优先级也遵循最近原则, 下面是用js修改css变量, 一开始是蓝色, 后面会变成绿色

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>:root {--main-bg-color: deepskyblue;}.box {width: 100px;height: 100px;background: var(--main-bg-color);}</style></head><body><div class="box" id="box"></div></body><script>setTimeout(() => {const box = document.getElementById("box")console.log(box.style.getPropertyValue("--main-bg-color"))box.style.setProperty("--main-bg-color", "green")}, 1000)</script>
</html>

主要思想是准备三张图片, 分别作为前景和后景这样就有了六个div, 每两个前景和背景的div合成一组, 每次下落一个div的高度后重置, 这样就有了无限循环的效果

每个div都有自己的动画执行时间和延时, 混合在一起就造成了下雪的错觉 ~

前景的学下的快, 延时小, 后景的下的慢, 延时大

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>@keyframes falling {0% {transform: translate3D(-7.5%, -100%, 0);}to {transform: translate3D(7.5%, 100%, 0);}}body {background: deepskyblue;}.app__snow {overflow: hidden;position: absolute;top: 0;right: 0;bottom: 0;left: 0;pointer-events: none;z-index: 5000;}.snow__level {position: absolute;top: 0;right: 0;bottom: 0;left: 0;animation: falling linear infinite both;transform: translate3D(0, -100%, 0);}.snow__level--near {animation-duration: var(--s-near);background-image: url(./near.png);background-size: contain;}.snow__level--near + .snow__level--alt {animation-delay: calc(var(--s-near) / 2);}.snow__level--mid {animation-duration: var(--s-mid);background-image: url(./mid.png);background-size: contain;}.snow__level--mid + .snow__level--alt {animation-delay: calc(var(--s-mid) / 2);}:root {--s-near: 10s;--s-mid: calc(var(--s-near) * 2);--s-far: calc(var(--s-near) * 3);--ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);}.snow__level--far {animation-duration: var(--s-far);background-image: url(./far.png);background-size: contain;}.snow__level--far + .snow__level--alt {animation-delay: calc(var(--s-far) / 2);}</style></head><body><div class="app__snow snow"><div class="snow__level snow__level--near"></div><div class="snow__level snow__level--near snow__level--alt"></div><div class="snow__level snow__level--mid"></div><div class="snow__level snow__level--mid snow__level--alt"></div><div class="snow__level snow__level--far"></div><div class="snow__level snow__level--far snow__level--alt"></div></div></body>
</html>

这篇关于css 自定义属性和雪花飘落效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208471

相关文章

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求