当前位置:首页 > 生活百科

backgroundimage用法(网页制作教程)

栏目:生活百科日期:2025-01-21浏览:0

更多

登录512收藏分享

CSS3中用background-image实现粒子动画效果

原创2019-04-03 12:05·web秀

前言

继续前几天的文章《王者荣耀匹配人员加载页面动画用纯CSS撸出来,你信吗?》,添加按钮、背景粒子动画效果。

其实在码代码的时候会发现,很多东西都是殊途同归的,方法千千万,能解决问题的都是好办法,不一定非要把代码写的特别高深,这样反而后来的人看不懂,维护根据头疼。

所以用最简单通俗的代码,更能利于后期的维护开发。

ok!先来看看背景粒子动画效果预览图:

以下代码都是基于前一篇文章《王者荣耀匹配人员加载页面动画用纯CSS撸出来,你信吗?》的,所以没有了解的可以先去看看这篇文章。

按钮点击粒子动画

&<p class="button"&>  &<p class="button-text"&>确认&</p&> &</p&>

由于按钮是梯形的,之前代码在button选择器上面已经加了伪类来实现梯形了,所以我们只能再套一层元素(button-text)来实现粒子。

.button-text {  position: relative;  width: 100%;  border-radius: 4px;  border: none;  cursor: pointer; } .button-text:before, .button-text:after {  position: absolute;  content: '';  display: block;  width: 140%;  height: 100%;  left: -20%;  z-index: -1000;  background-repeat: no-repeat; } .button-text:before {  display: none;  top: -75%;  background-image:  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, transparent 20%, #fff 20%, transparent 30%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, transparent 10%, #fff 15%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%);  background-size:  10% 10%,  20% 20%,  15% 15%,  20% 20%,  18% 18%,  10% 10%,  15% 15%,  10% 10%,  18% 18%; } .button-text:after {  display: none;  bottom: -75%;  background-image:  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, transparent 10%, #fff 15%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%);  background-size:  15% 15%,  20% 20%,  18% 18%,  20% 20%,  15% 15%,  10% 10%,  20% 20%; } .button-text:active {  transform: scale(0.9); }

在button-text的伪类元素上面,添加background-image,并用径向渐变radial-gradient画出多个圆作为粒子。

transform: scale(0.9),是鼠标点击时,缩放button-text元素。

大家应该都看到默认伪类元素是display: none;隐藏的。所有当我们点击时,需要添加一个选择器,让其显示出来,并执行动画。

js来监听点击事件,点击后添加animate选择器。

var animateButton = function(e) {  e.preventDefault;  e.target.classList.remove('animate');  e.target.classList.add('animate');  setTimeout(function(){  e.target.classList.remove('animate');  },700); };  var classname = document.getElementsByClassName("button-text"); for (var i = 0; i &< classname.length; i++) {  classname[i].addEventListener('click', animateButton, false); }

然后我们添加CSS,开始动画

.button-text.animate:before {  display: block;  animation: topBubbles ease-in-out 0.75s forwards; } .button-text.animate:after {  display: block;  animation: bottomBubbles ease-in-out 0.75s forwards; } @keyframes topBubbles {  0% {  background-position:  5% 90%,  10% 90%,  10% 90%,  15% 90%,  25% 90%,  25% 90%,  40% 90%,  55% 90%,  70% 90%;  }  50% {  background-position:  0% 80%,  0% 20%,  10% 40%,  20% 0%,  30% 30%,  22% 50%,  50% 50%,  65% 20%,  90% 30%;  }  100% {  background-position:  0% 70%,  0% 10%,  10% 30%,  20% -10%,  30% 20%,  22% 40%,  50% 40%,  65% 10%,  90% 20%;  background-size:  0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%;  } } @keyframes bottomBubbles {  0% {  background-position:  10% -10%,  30% 10%,  55% -10%,  70% -10%,  85% -10%,  70% -10%,  70% 0%;  }  50% {  background-position:  0% 80%,  20% 80%,  45% 60%,  60% 100%,  75% 70%,  95% 60%,  105% 0%;  }  100% {  background-position:  0% 90%,  20% 90%,  45% 70%,  60% 110%,  75% 80%,  95% 70%,  110% 10%;  background-size:  0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%,  0% 0%;  } }

我们通过background-position改变背景的位置,用background-size改变大小,来形成动画效果。

这样就形成按钮点击粒子动画效果了。

同理,我们可以在背景上面添加同样的粒子效果。代码基本可以copy。

背景粒子效果

.king:before {  position: absolute;  content: '';  display: block;  width: 100%;  height: 100%;  top: 0;  z-index: 1;  background-repeat: no-repeat;  opacity: 0.4; } .king:before {  background-image:  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, transparent 20%, #fff 20%, transparent 30%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, transparent 10%, #fff 15%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%),  radial-gradient(circle, #fff 20%, transparent 20%);  background-size:  10% 10%,  12% 12%,  5% 5%,  12% 12%,  5% 5%,  10% 10%,  5% 5%,  10% 10%,  5% 5%;  display: block;  animation: topBubbles ease-in-out 3s forwards infinite; }

这里我们改变一下粒子的大小,和透明度,以及层次(z-index)。让其一开始就执行动画,并且循环执行(infinite)。动画执行效果,我们直接用上面按钮的效果(topBubbles)即可。

“backgroundimage用法(网页制作教程)” 的相关文章

win7设置自动开机时间如何取消(取消定时关机的教程)

公司电脑加域之后响应相当的缓慢,就连开机都要等好几分钟才能使用(需要加载域设置及监管程序)。下班也是由于电脑比较陈旧每次关机都要等好几分钟,加上有时候外出总是需...

arcgis缓冲区怎么做(举例分析arcgis缓冲区知识)

1.概述缓冲区分析是指以点、线、面实体为基础,自动建立其周围一定宽度范围内的缓冲区多边形图层,然后用该图层与目标图层叠加,进行分析而得到所需结果。缓冲区分析可以...

如何做网络广告推广(见效最好的6种推广方法)

一、产品特点定位,要认真调查产品的核心竞争力,二、产品人群的定位,对客户要分类具体分析,对高中低档产品适应人群的量,三、产品市场的定位,市场份额的多少,做到实体...

厨房用品哪个品牌好(浅谈厨房电器十大品牌)

厨房电器是以传统烟灶消为代表的、专供家庭厨房使用的一类家用电器,是家家户户烧水饭都离不开日常电器。随着厨房功能的不断增加,厨房电器市场也不断在扩大,消费者接收到...

lol区服实力排名(英雄联盟各大区人数排行)

随着上周比赛的全部结束,全球各大赛区也进入了全新的一周,由于临近季后赛了,很多中下游的队伍也开始着急起来了,所以他们必须在剩下为数不多的比赛中尽量多拿一些分,尽...

mac切换windows系统按哪个键(教你这2种切换方式)

方法一:1.开启计算机时,按住Option按钮,然后按住2到3秒钟。2.出现系统切换界面,选择需要输入的系统盘以启动。方法二:1.在Apple系统中,您也可以切...

三星s8配置参数详情(现在三星s8价格大概的费用)

随着三星GalaxyNote7手机的全球停售和召回,消费者对下代旗舰手机GalaxyS8的期待也越来越高。今日微博网友@i冰宇宙汇总了已知的GalaxyS8几大...

初步创业做什么好,初步创业小项目推荐

很多创业者一直都被这样的问题所苦恼,初步创业做什么好?初步创业做什么好物流配货当今社会,随着网购的热潮,物流业以迅猛的势头发展,物流这个名词越来越多的被人关注,...

yum配置本地源报错(linux安装yum源命令)

概述由于网络限制,部分服务器不给阿里源访问权限了,那就只能搭建一下集团的私有yum仓库了,仅供参考。一、共享yum源YUM是“YellowdogUpdater,...

充电宝那个品牌质量好(四款质量超级好的充电宝推荐)

“你带充电宝了吗?”“我手机要没电了,谁有充电宝?”这几句话感觉每次聚会都会萦绕在我耳边,每次看到没电提醒时,就瞬间没有了安全感,恨不得有个比卡丘能随时在身边,...