前端开发whqet,csdn,王海庆,whqet,前端开发专家

好久没有更新的CSS3演武场系列,半年前搁浅的一篇文章赋予新年新气象闪亮登场了,研究一下利用css(sass)实现粒子效果,主要使用box-shadow生成粒子,利用css3 animation和translateZ实现动画。

------------------------------------------------------------

--我参加了博客之星评选,如果你喜欢我的博客,求投票,您的支持是我的动力之源,走起!

-----------------------------------------------------------------------------------------

看效果先

思路解析

1.box-shadow生成粒子,赋予随机位置、随机颜色,利用sass的for循环和random()实现。

2.animation实现动画。

3.transform 3d实现深度动画,主要使用translateZ。

实现

下面我们分别来实现一下,源码我放在了codepen,请大家移步。

----------------

----------------------------------------

在线研究点击这里,下载收藏点击这里。

----------------------------------------

---------------

1.html部分非常简单就是一个div。

<div class="stars"></div>

2.css部分是重点,我们首先设置全局的css,我们使用normallize和prefix free。然后对html和body作如下设置。

$stars: 100;         // 粒子数
$depth: 300;         // 深度
$speed: 1s;          // 动画时间
$width: 1500;        // 宽
$height: 960;        // 高html, body {height: 100%;overflow: hidden;
}
body {perspective: 340px;background:#000 url(https://img-my.csdn.net/uploads/201501/02/1420174857_3649.png) center center no-repeat;background-size:28% 30%;
}

对于.stars,我们设置大小、位置,宽、高各位5px,位置居中,圆角边框。

.stars {position: absolute;top: 50%;left: 50%;width:5px;height:5px;border-radius:100%;
}

然后我们使用box-shadow生成粒子。box-shadow一个很好玩的特性,生成效果如下。

.stars {position: absolute;top: 50%;left: 50%;width:5px;height:5px;border-radius:100%;/*box-shadow生成粒子*/$box-shadow: ();@for $i from 0 through $stars {$box-shadow: $box-shadow, (random($width)-$width/2 + px) (random($height)-$height/2 + px) adjust-hue(#ff0000, random(360));}box-shadow: $box-shadow;
}

然后这个数量有点少,同时层次感不足,我们利用:before和:after伪对象搞定这些事情。

.stars {position: absolute;top: 50%;left: 50%;width:5px;height:5px;border-radius:100%;$box-shadow: ();@for $i from 0 through $stars {$box-shadow: $box-shadow, (random($width)-$width/2 + px) (random($height)-$height/2 + px) adjust-hue(#ff0000, random(360));}box-shadow: $box-shadow;/*伪对象更多粒子、更多层次*/&:before, &:after {content: "";position: absolute;width: inherit;height: inherit;box-shadow: inherit;}&:before {transform: translateZ(-$depth + px);opacity: .3;}&:after {transform: translateZ(-$depth * 2 + px);opacity: .1;}
}

添加粒子和深度之后效果如下图所示。

然后添加动画。

.stars {position: absolute;top: 50%;left: 50%;width:5px;height:5px;border-radius:100%;/*box-shadow生成粒子*/$box-shadow: ();@for $i from 0 through $stars {$box-shadow: $box-shadow, (random($width)-$width/2 + px) (random($height)-$height/2 + px) adjust-hue(#ff0000, random(360));}box-shadow: $box-shadow;/* 添加动画 */animation: fly $speed linear infinite;transform-style:preserve-3d;/* 伪对象更多粒子、更多层次 */&:before, &:after {content: "";position: absolute;width: inherit;height: inherit;box-shadow: inherit;}&:before {transform: translateZ(-$depth + px);opacity: .3;}&:after {transform: translateZ(-$depth * 2 + px);opacity: .1;}
}@keyframes fly {from {transform: translateZ(0px);opacity:.1;}to {transform: translateZ($depth + px);opacity:0.8;}
}

然后,就可以欣赏效果了。最后给大家附带完整的css源码。

$stars: 100;         // 粒子数
$depth: 300;         // 深度
$speed: 1s;          // 动画时间
$width: 1500;        // 宽
$height: 960;        // 高html, body {height: 100%;overflow: hidden;
}
body {perspective: 340px;background:#000 url(https://img-my.csdn.net/uploads/201501/02/1420174857_3649.png) center center no-repeat;background-size:28% 30%;
}
.stars {position: absolute;top: 50%;left: 50%;width:5px;height:5px;border-radius:100%;$box-shadow: ();@for $i from 0 through $stars {$box-shadow: $box-shadow, (random($width)-$width/2 + px) (random($height)-$height/2 + px) adjust-hue(#ff0000, random(360));}box-shadow: $box-shadow;/* animation: fly $speed linear infinite;transform-style:preserve-3d;*/&:before, &:after {content: "";position: absolute;width: inherit;height: inherit;box-shadow: inherit;}&:before {transform: translateZ(-$depth + px);opacity: .3;}&:after {transform: translateZ(-$depth * 2 + px);opacity: .1;}
}@keyframes fly {from {transform: translateZ(0px);opacity:.1;}to {transform: translateZ($depth + px);opacity:0.8;}
}

感谢您耐心读完,如果对您有帮助,请支持我!

----------------------------------------------------------

前端开发whqet,关注web前端开发,分享相关资源,欢迎点赞,欢迎拍砖。
---------------------------------------------------------------------------------------------------------

纯css实现粒子效果相关推荐

  1. 纯 CSS 实现波浪效果!

    一直以来,使用纯 CSS 实现波浪效果都是十分困难的. 因为实现波浪的曲线需要借助贝塞尔曲线. 而使用纯 CSS 的方式,实现贝塞尔曲线,额,暂时是没有很好的方法. 当然,借助其他力量(SVG.CAN ...

  2. 制作css开关,纯css实现开关效果

    大家好,我又来了,这次给大家表演使用纯css实现开关效果 首先是构思 我们使用标签来实现这个效果. checkbox的选中.未选中的特性,刚好对应开关的打开.关闭 on:打开 off:关闭 未选中,则 ...

  3. html实现开关,使用纯css实现开关效果

    首先是构思 我们使用标签来实现这个效果. checkbox的选中.未选中的特性,刚好对应开关的打开.关闭 on:打开 off:关闭 未选中,则关闭开关 选中,则打开开关 开始画出off.on状态的草图 ...

  4. 如何用纯 CSS 实现优惠券效果

    ​ 背景 本文来自CODE.FUN  ,讲述如何用纯 CSS 实现优惠券效果的实践案例,分享给大家. 优惠券视觉效果 上面是优惠券的视觉效果,本文分享如何使用纯 CSS 实现它的主要框架,希望对大家有 ...

  5. 纯CSS实现弹幕效果

    纯CSS实现弹幕效果 动画相关的属性和方法已经本部分的开头简单提过了,我们来看一下本次要实现的效果--弹幕- 当你在阅读.看视频的时候经常会遇见一段文件或者一张表情从页面划过,要实现一个完整的功能很复 ...

  6. Php开源h5相册系统,HTML5 CSS3专题 纯CSS打造相册效果的示例代码详解

    HTML5 CSS3专题 纯CSS打造相册效果的示例代码详解: 今天偶然发现电脑里面还有这样的一个例子,感觉效果还不错,不记得啥时候下载的了,也好久没上w3cfuns了,怀念学习前台的日子,给大家分享 ...

  7. css中间镂空,怎么用纯CSS实现镂空效果

    怎么用纯CSS实现镂空效果 发布时间:2021-03-19 09:49:16 来源:亿速云 阅读:99 作者:小新 小编给大家分享一下怎么用纯CSS实现镂空效果,希望大家阅读完这篇文章之后都有所收获, ...

  8. 纯css实现信封效果

    纯css实现信封效果 <body><div id="dialog"><div id="envelope"><div i ...

  9. HTML中 css红绿黄灯,纯CSS实现红绿灯效果(面试常见)

    先看题,别看答案试下吧 ~_~ 1.下面的代码输出的内容是什么? function O(name){ this.name=name||'world'; } O.prototype.hello=func ...

最新文章

  1. 双系统重装windows后如何恢复ubuntu启动项
  2. 转载:程序员从初级到中级10个秘诀
  3. 条件信息熵的决策表约简
  4. php基础知识填空题,比较基础的php面试题及答案填空题
  5. 【Java 强化】单元测试(JUnit3、JUnit4)、XML(语法、约束、文档结构)、DOM、DOM4J
  6. 2021重庆对口高职高考成绩查询,重庆市2021年高职分类考试成绩明日放榜
  7. 牛客网Java刷题知识点之表达式类型的自动提升
  8. from表单requried属性效果
  9. 百度移动开放平台认领应用--apk 空包签名
  10. java socket 发对象_Java Socket 发送对象
  11. word文档解除编辑受限(忘记密码)
  12. 关于个人网站的盈利模式,可能你还不知道?
  13. linux jq下载文件,linux 之 jq
  14. codeforces 868C - Qualification Rounds
  15. jadx卡死解决方案
  16. 男人很容易喜欢一个女人,却不轻易深爱一个女人。
  17. 2019,推荐几个牛逼大佬的公号
  18. 指针和地址之间的关系是什么?
  19. Spark教程——(10)Spark SQL读取Phoenix数据本地执行计算
  20. python怎么导入数据集keras_keras使用Sequence类调用大规模数据集进行训练的实现

热门文章

  1. 一、flink基础之数据读取
  2. 什么是UML,UML类图
  3. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
  4. 学校计算机机房 管理 总结,学校计算机机房的建设与管理
  5. wince调节屏幕亮度
  6. 贤者之路, Caffe转TensorRT
  7. NBUT 1119 Patchouli's Books (STL应用)
  8. 【机器学习】--神经网络(NN)
  9. 过年的气氛为什么几乎全无,内心也没有任何期盼呢?
  10. 计算机单片机实训报告,单片机实训总结