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自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam