怎样才能让到处下雨呢?

2024-02-19

我想创建一个下雨效果我的天气应用程序 https://thewthr.app/仅使用 CSS。然而,尽管我在外观上取得了令人满意的结果,但我似乎无法让它们连续覆盖整个屏幕,而不仅仅是随机的块 - 我该怎么办?

body {
  overflow: hidden;
}

#background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

#background.night {
  background: linear-gradient(#0F2129, #47334A);
}

#background>.cloud {
  width: 900px;
  height: 900px;
  position: absolute;
  background-color: #fff;
  border-radius: 50%;
  animation: cloud 10s infinite alternate;
}

#background.rain>.cloud {
  opacity: .5;
}

#background>.cloud:nth-child(even) {
  animation-delay: 3s;
}

#background.night>.cloud {
  background-color: grey;
}

#background.rain>.cloud:before,
#background.rain>.cloud:after {
  animation: rain 1s infinite linear;
  content: '';
  border-radius: 50%;
  display: block;
  height: 6px;
  width: 3px;
  opacity: 1;
  margin-top: 700px;
}

#background.rain>.cloud:after {
  transform: translate(50px);
}

#background.rain>.cloud:nth-child(even):before,
#background.rain>.cloud:nth-child(even):after {
  animation-delay: .3s;
}

@keyframes rain {
  0% {
    box-shadow: #cccccc 30px 30px, #cccccc 40px 40px, #cccccc 50px 75px, #cccccc 55px 50px, #cccccc 70px 100px, #cccccc 80px 95px, #cccccc 110px 45px, #cccccc 75px 50px, #cccccc 80px 20px, #cccccc 65px 40px, #cccccc 100px 80px, #cccccc 45px 85px, #cccccc 95px 50px, #cccccc 90px 35px;
  }
  100% {
    box-shadow: #cccccc 30px 970px, #cccccc 40px 980px, #cccccc 50px 945px, #cccccc 55px 980px, #cccccc 70px 960px, #cccccc 80px 945px, #cccccc 110px 995px, #cccccc 75px 950px, #cccccc 80px 920px, #cccccc 65px 940px, #cccccc 100px 980px, #cccccc 45px 985px, #cccccc 95px 950px, #cccccc 90px 985px;
  }
}

@keyframes cloud {
  100% {
    transform: translate(-50px) scale(1.05);
  }
}
<div id="background" class="rain night">
  <div class="cloud" style="top: -797.689px; left: -315px;"></div>
  <div class="cloud" style="top: -865.689px; left: -225px;"></div>
  <div class="cloud" style="top: -814.689px; left: -65px;"></div>
  <div class="cloud" style="top: -853.689px; left: 253px;"></div>
  <div class="cloud" style="top: -823.689px; left: 23px;"></div>
  <div class="cloud" style="top: -843.689px; left: 109px;"></div>
</div>

对于一些随机的人来说这是一份好工作radial-gradient你重复一下。不是linear-gradient因为你将很难在重复之间创造空间(也许不可能)。

这是一个基本示例。我们在不同的随机位置使用相同的梯度,并且所有梯度都会重复:

html {
  height:100%;
  background: linear-gradient(#0F2129, #47334A);
  overflow:hidden;
}
html:before {
  content:"";
  position:absolute;
  bottom:0;
  right:0;
  left:0;
  height:calc(100% + 100px); /* should be bigger than (100% + 55px)*/
  background:
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) -12px 3px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 17px 0,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 6px  12px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 24px 23px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 39px 30px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 5px  43px;
  background-size:50px 55px;
  animation:rain 0.2s linear infinite;
}
@keyframes rain{
  to {
     transform:translateY(55px); /* Same as the height of the background-size */
  }
}

如果你想要一点倾斜:

html {
  height:100%;
  background: linear-gradient(#0F2129, #47334A);
  overflow:hidden;
}
html:before {
  content:"";
  position:absolute;
  bottom:0;
  right:-20%;
  left:-20%;
  height:calc(100% + 100px); /* should be bigger than (100% + 55px)*/
  background:
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) -12px 3px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 17px 0,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 6px  12px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 24px 23px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 39px 30px,
     radial-gradient(2px 8px,#cccccc 100%,transparent 100%) 5px  43px;
  background-size:50px 55px;
  animation:rain 0.2s linear infinite;
  transform:skew(-8deg);
}
@keyframes rain{
  to {
     transform:skew(-8deg) translateY(55px); /* Same as the height of the background-size */
  }
}

并使用 CSS 变量轻松控制:

html {
  height:100%;
  background: linear-gradient(#0F2129, #47334A);
  overflow:hidden;
  
  --s:2px 8px; /* size of drop of water*/
  --c:#ccc;    /* color of the water*/
  --a:-7deg;   /* control the skewing*/
  --w:50px;    /* width of the pattern*/
  --h:55px;    /* height of the pattern*/
  
   --rad:radial-gradient(var(--s),var(--c) 100%,transparent 100%)
}
html:before {
  content:"";
  position:absolute;
  bottom:0;
  right:-20%;
  left:-20%;
  height:calc(100% + var(--h) + 10px); /* should be bigger than (100% + var(--h))*/
  background:
     var(--rad) -12px 3px,
     var(--rad) 17px 0,
     var(--rad) 6px  12px,
     var(--rad) 24px 23px,
     var(--rad) 39px 30px,
     var(--rad) 5px  43px;
  background-size:var(--w) var(--h);
  animation:rain 0.2s linear infinite;
  transform:skew(var(--a));
}
@keyframes rain{
  to {
     transform:skew(var(--a)) translateY(var(--h)); /* Same as the height of the background-size */
  }
}

您可以考虑使用具有不同图案的两个层来实现另一种动画(更随机)

html {
  height:100%;
  background: linear-gradient(#0F2129, #47334A);
  overflow:hidden;
  
  --s:2px 8px; /* size of drop of water*/
  --c:#ccc;    /* color of the water*/
  --a:-7deg;   /* control the skewing*/
  --w:53px;    /* width of the pattern*/
  --h:55px;    /* height of the pattern*/
  
   --rad:radial-gradient(var(--s),var(--c) 100%,transparent 100%)
}
html:before,
html:after{
  content:"";
  position:absolute;
  bottom:0;
  right:-20%;
  left:-20%;
  height:calc(100% + var(--h) + 10px); /* should be bigger than (100% + var(--h))*/
  background:
     var(--rad) -12px 3px,
     var(--rad) 17px 0,
     var(--rad) 6px  12px,
     var(--rad) 24px 23px,
     var(--rad) 39px 30px,
     var(--rad) 5px  43px;
  background-size:var(--w) var(--h);
  animation:rain 0.2s linear infinite;
  transform:skew(var(--a));
}
html:after {
   --h:70px;
   --w:61px;
}
@keyframes rain{
  to {
     transform:skew(var(--a)) translateY(var(--h)); /* Same as the height of the background-size */
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎样才能让到处下雨呢? 的相关文章

  • onClick 事件适用于触摸屏设备上的触摸吗?

    我用过onclick我的网站上的活动 但是 当我在谷歌浏览器的开发人员模式移动视图中打开它时 触摸使用鼠标单击的元素没有任何反应 所以我的问题是 我还必须添加吗ontouch事件连同onclick事件或 onClick 事件适用于所有触摸屏
  • 没有宽度/高度的 SVG 以自然尺寸渲染

    我有这个 SVG 但没有width or height属性 我有以下 HTML div class block img src https s3 eu vAmfIxVv kiwi svg div 使用以下CSS block display
  • iOS 10.3 safari text-align:调整波斯语/阿拉伯语内容的错误

    在更新到 10 3 之前 我的网站在 iPhone 的所有移动浏览器上都能正常运行和查看 从我将 iOS 更新到 10 3 后 我的内容页面遇到了一个问题 内容被包装在 div CSS 属性为text align justify 我的内容在
  • 继承子节点的高度(A内的IMG)

    我的电脑上有一个漂亮的 CSS a 标签 放一个 img 链接内部使图像粘在链接外部 a 块 尽管它仍然可以点击 但看起来很愚蠢 改变 a to display block or float left修复了这个问题 但有一个不良的情况not
  • SVG 沿圆弧添加文本

    我正在尝试绘制 SVG 径向饼图 如下所述 色卡 https stackoverflow com a 18210763 1395178 现在我尝试将文本与圆弧一起添加到每个切片 我试图展示Text 1具有与 M 和 A 值完全相同的 x y
  • 是否可以使 Font Awesome 图标大于“fa-5x”?

    我正在使用这个 HTML 代码 div class col lg 4 div class panel div class panel heading div class row div class col xs 3 i class fa f
  • Div 上的倾斜边框

    我正在尝试倾斜一个 div 类似于 使用 css 倾斜 div 的顶部而不倾斜文本 https stackoverflow com questions 13591584 slant the top of a div using css wi
  • CSS 中的 &::before、&::after 是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想创建一个垂直时间线 然后我发现了这个页面 http cssdeck com labs oz2nu681 http cssdeck
  • 如何更改单选按钮的默认外观而不是功能?

    在表单上我有两个单选按钮Yes and No 我想更改单选按钮的默认外观 喜欢这个 Edit 我想改变radio按钮进入 a 如果通过 CSS 更改默认单选按钮的外观并不容易 则在启用 JavaScript 时锚定 最简单的方法 将图像设置
  • 当鼠标悬停在上面时制作一个 React Bootstrap NavDropdown 下拉菜单

    我试图让 React Bootstrap 中的下拉菜单栏在您显示选项时hover超过它 我到处查看 所有解决方案似乎都已过时并且不起作用 如果您能够解决此问题 请告诉我 这是我尝试将更改应用到的下拉菜单
  • CSS过渡div晃动

    为什么当我使用位置绝对和百分比宽度时 当我将鼠标悬停在上面的 div 上时会出现此故障 有例子 我在更复杂的网站上遇到了这个故障 div class box text div div class container div box widt
  • 向下滚动时如何使图像移动?

    这是我想要实现的目标的示例 https www flambette com en https www flambette com en 我尝试过更改图像的 css 属性 但效果不能满足我的需求 我尝试过以下代码 mydocument on
  • 是否可以使用纯 css 禁用 mat-tab 动画

    我想禁用 Angular Material mat tab 动画 内容滑入到位时发生的动画 我知道可以使用 disabled 属性 但我想知道是否可以使用纯 css 达到相同的效果 EDIT 我们的用户体验团队希望从材质选项卡中删除幻灯片动
  • C# html-helper 扩展现有方法而不覆盖?

    我已经搜索过这个问题并发现可能answer https stackoverflow com questions 11232041 how to create an html helper to extend textboxfor to ad
  • 如何使页面上的所有内容变大?

    如果我在浏览器中打开我的网站并按Ctrl 有几次 一切都变得更大 网站对我来说看起来更好 我可以通过在 HTML 代码中添加一些内容来实现相同的效果吗 以便用户默认看到更大的所有内容 而无需按Ctrl 我想让所有东西都变大 文本和图像 如果
  • 将箭头添加到 Twitter Bootstrap 的下拉药丸中?

    我的 Twitter 引导下拉按钮成功工作 但我有一个小问题 这里的黑色导航栏 http twitter github com bootstrap javascript html dropdowns http twitter github
  • Bootstrap 3 - 使用垂直滚动条水平拖动元素,overflow-y:滚动

    在我的失败之后上一篇文章 https stackoverflow com questions 23586926 bootstrap grid with scrollable affixed column noredirect 1 comme
  • 盒子大小是否可在电子邮件模板中使用

    我正在创建电子邮件模板 我发现了这个CSS 支持指南 https www campaignmonitor com css but box sizing不在那儿 我想知道是否支持该 CSS 属性 如果支持 哪些电子邮件客户端支持它 不 不支持
  • 将一个 div 放置在另一个 div 的底部

    我有外部 div 和内部 div 我需要将内部 div 放在外部 div 的底部 外层div是有弹性的 例如宽度 70 我还需要将内部块居中 所述化妆的简单模型如下图所示 已在 Firefox 3 Chrome 1 和 IE 6 7 和 8
  • 当内部图像缩放时,包裹 div 不会调整大小(窗口大小调整的结果)

    我希望我的图像随着窗口高度的变化而调整大小 同时保持包含的 div 收缩包裹图像 我尝试使用 div img src http akamaicovers oreilly com images 9780596806767 cat gif al

随机推荐

  • 当表单操作属性为“#”(数字/井号/符号/字符)时,这意味着什么?

    当表格出现时 这意味着什么action属性是 数字 井号 符号 字符 当表单输入时会发生什么formaction属性设置为 这是否会阻止输入被提交到服务器
  • 用按位运算替换最低有效位

    用提供的位替换字节的最低有效位的最佳方法是什么 我知道如何检查和比较最后一位 例如使用 posix ffs 函数 但我想知道是否有性能更好的解决方案 而不检查替换位是 0 还是 1 该示例是用 python 伪代码编写的 但我将用 C 实现
  • web3.js如何搜索所有曾经创建的合约并查看地址

    我是 web3 js 和 Solidity 的新手 我的问题与我们在区块链上搜索的方式有关 如果我们知道合约地址 就很容易搜索特定合约 然而 我们如何使用最初用于创建合约的地址来查找和识别特定类型的合约 例如 我有一个合同 Contract
  • OSX Game Center:无法与帮助应用程序通信

    I m setting up Game Center for my OSX game but it can t authenticate player with the following error OSX 10 10 Yosemite
  • 计算页面大小和段大小

    在分页分段系统中 我们有32位的虚拟地址和12位的偏移量 11位的段和9位的页号 我们如何计算页面大小 最大段大小和最大段数 保留 12 位用于偏移量 因此页面大小为 2 12 4KB 9 位保留用于页号 因此每个段可以包含 2 9 512
  • 绘制具有颜色渐变的矩阵“光谱图”

    使用 STFT 短时傅立叶变换 后 输出是一个表示 3d 图的矩阵 就像 A X Y M A是输出矩阵 X是时间 Y是频率 第三维M是由像素颜色强度表示的幅度 如下图所示 频谱图2 https i stack imgur com mtWqb
  • 使用 Caret 在 R 中创建 k 折 CV 的折叠

    我正在尝试使用以下位置提供的数据为几种分类方法 hiperparameters 制作 k 折 CVhttp archive ics uci edu ml machine learning databases undocumented con
  • 如何知道ios中UIKeyboard上按下了哪个键? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在实现一个 iPad 应用程序
  • R中PRROC包的精确召回曲线计算

    我的问题与this https stackoverflow com questions 25020788 in r calculate area under precision recall curve aupr问题 我对计算精确召回曲线
  • 将 JAR 添加到 IntelliJ 中的 WEB-INF/lib 目录中的正确步骤是什么

    假设我有一个 Java Web 项目 我需要将几个 JAR 放入 WEB INF lib 目录中 在 Eclipse 中 如果您只是将这些 JAR 放在那里 Eclipse 就会像在类路径上一样拾取它们 然而 IntelliJ 似乎没有 将
  • 从 Python 类获取所有 @properties [重复]

    这个问题在这里已经有答案了 在Python中 我怎样才能得到所有特性一个类的所有成员 即由该类创建的所有成员 property装饰师 There are at least two questions 1 2 on stackoverflow
  • 计算与谓词匹配的元素数量的惯用方法是什么?

    除了这个之外 是否有更好的方法来计算谓词函数为 true 的元素数量 PredCount lst pred Length Select lst pred 我问这个问题是因为构建一个子集似乎效率低下lst with Select 并且因为Co
  • 将作曲家 1 和 2 保留在同一台机器上

    我们如何在同一台机器上使用 Composer 1 和 Composer 2 作为一名开发人员 我们在同一台机器上处理多个项目 并且项目 1 需要 Composer 1 项目 2 需要 compower 版本 2 这就是我曾经在同一台机器上安
  • 为什么我不能在 MySQL 中使用特定的排序规则?

    我有一个包含字符集的表latin1 通过检查show variables like character set database 和默认排序规则latin1 swedish ci 通过检查SHOW TABLE STATUS 我想使用排序规则
  • 如何部署线程安全的异步 Rails 应用程序?

    我在网上阅读了大量有关不同版本的 Ruby 和 Rails 中的线程安全和性能的材料 我想我现在已经很好地理解了这些内容 奇怪的是 讨论中似乎缺少的是如何实际部署异步 Rails 应用程序 当谈论应用程序中的线程和同步性时 人们想要优化两件
  • 寻找用于在细分域上进行数值积分的 Python 包

    我想知道是否有人知道基于 numpy scipy 的 python 包 可以在镶嵌域 在我的具体情况下 由 voronoi 单元格界定的 2D 域 上对复杂的数值函数进行数值积分 过去 我使用了 matlab 文件交换之外的几个包 但如果可
  • Netbeans 外部控制台错误

    我正在尝试使用 netbeans 在 Windows 10 中 在 C 中编译一个简单的 hello world 程序 但是出现以下错误 sh cygdrive c Users myuser 1 AppData local Temp dli
  • 如何获得随机数,每个数字都有自己的概率[重复]

    这个问题在这里已经有答案了 例如 我想从集合 S 0 1 2 3 中获取随机数 但现在每个数字都有不同的概率 而不是每个数字都有相同的显示概率 即 25 比如说 50 30 20 10 我该如何编码 在 Java 或 C 中 我更喜欢 C
  • 在共享内存中初始化 pthread 互斥体

    我可以使用初始化器初始化静态内存中的互斥体 pthread mutex t mymutex PTHREAD MUTEX INITIALIZER 但是如何在共享内存中初始化一个变量 在该内存中我必须与初始化变量分开分配内存 我可以执行 mem
  • 怎样才能让到处下雨呢?

    我想创建一个下雨效果我的天气应用程序 https thewthr app 仅使用 CSS 然而 尽管我在外观上取得了令人满意的结果 但我似乎无法让它们连续覆盖整个屏幕 而不仅仅是随机的块 我该怎么办 body overflow hidden