CSS边框向外扩散动画特效怎样实现的
Admin 2022-11-11 群英技术资讯 1051 次浏览
在这篇文章中我们来了解一下“CSS边框向外扩散动画特效怎样实现的”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
我们先来看看效果图:
下面我们来研究一下是怎么实现这个效果的:
首先创建HTML部分,定义一个div
容器,包含文本文字:
<div id="box"> 编程是为那些有不同想法的人准备的。。。<br /> 对于那些想要创造伟大事物并愿意改变世界的人。 </div>
然后开始定义css样式来进行修饰:调整布局样式、背景颜色、div居中对齐、字体颜色
body { display: flex; align-items: center; justify-content: center; height: 100vh; background: #00ac69; } #box { font-family: Arial; font-size: 18px; line-height: 30px; font-weight: bold; color: white; border: 2px solid; padding: 15px; }
直角不好看,我们可以使用border-radius来将边框的四个角设置为圆角
#box { border-radius: 10px; }
下面就是最关键的,创建影向外扩散的动画特效:我们使用animation和@keyframes来实现
首先把 animation 绑定到#box元素上,使用animation属性 为@keyframes动画规定名称、设置完成动画所花费的时间、动画的速度曲线。
#box { animation: animated-border 1.5s infinite; }
然后就是利用@keyframes来设置动画每一帧的动作了
这里是设置动画刚开始(0%{})时,边框阴影为box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4);
;然后当动画完成(100%{})时,边框阴影为box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
,阴影距离变大、颜色变为透明。
@keyframes animated-border { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); } 100% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); } }
OK,大功告成!下面附上完整代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> body { display: flex; align-items: center; justify-content: center; height: 100vh; background: #00ac69; } #box { font-family: Arial; font-size: 18px; line-height: 30px; font-weight: bold; color: white; border: 2px solid; padding: 15px; border-radius: 10px; animation: animated-border 1.5s infinite; } @keyframes animated-border { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); } 100% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); } } </style> </head> <body> <div id="box"> 编程是为那些有不同想法的人准备的。。。<br /> 对于那些想要创造伟大事物并愿意改变世界的人。 </div> </body> </html>
最后给大家介绍一下关键属性animation
和@keyframes
:
animation 属性是一个简写属性,可以在一个声明中设置多个动画属性:
animation-name:指定要绑定到选择器的关键帧的名称 animation-duration:动画指定需要多少秒或毫秒完成 animation-timing-function:设置动画将如何完成一个周期 animation-delay:设置动画在启动前的延迟间隔。 animation-iteration-count:定义动画的播放次数。 animation-direction:指定是否应该轮流反向播放动画。 animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 animation-play-state:指定动画是否正在运行或已暂停。
@keyframes
规则用于定义CSS动画的一个周期的行为;需要和animation属性一起使用,创建简单的动画效果。
@keyframe规则由关键字“@keyframe”组成,后面接着是给出动画名称的标识符(将使用animation-name引用),随后是通过一组样式规则(用大括号分隔)。然后,通过使用标识符作为animation-name属性的值,将动画应用于元素。例如:
/* 定义动画*/ @keyframes 动画名称{ /* 样式规则*/ } /* 将它应用于元素 */ .element { animation-name: 动画名称(在@keyframes中已经声明好的); /* 或使用动画简写属性*/ animation: 动画名称 1s ... }
在@keyframes规则的大括号中,我们需要定义关键帧或航点,这些关键帧或航点指定在动画期间的特定点处正在动画化的属性的值。这允许我们控制动画序列中的中间步骤。例如上例中的:
@keyframes animated-border { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); } 100% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); } }
到此,关于“CSS边框向外扩散动画特效怎样实现的”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css怎样在div边框上设置文字可以使用position属性将div中边框的文字设置为绝对定位样式,然后将其定位在边框上即可。示例如下:<!DOCTYPE html><html lang="en"><head> <met
css中删除input输入框的阴影:1、阴影是浏览器生成的。2、css样式分为内外阴影。2、去除input阴影,直接在input css里写-webkit-appearance: none; 就行了。
目录1.HTML简介1.1.HTML文档基本结构2.标签2.1.标签语法1.2.标签的属性和值1.3.常见的标签1.基础标签2.格式标签3.表单标签4.框架标签5.图形标签6.音频视频标签7.链接标签8.列表标签9.表格标签10.样式/节标签HTML由标签和属性构成的1.1.HTML文档基本结构<
这篇文章主要介绍了css页面文字的各种换行方法是什么的内容,包括页面文字不换行、自动换行、强制换行等,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇文章能帮助大家解决问题。
如何css实现列表展开与收起?下图效果想必大家都有看到过,列表的展开与收起效果在网站设计中还是比较常见的,那么种效果是如何实现的呢?下面我们就来一起学习一下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008