使用CSS3动画做了四个小案例(下)

简介: 使用CSS3动画做了四个小案例(下)

1.边框动画



成果效果是这样子,接下来让我们一起来试试看吧


首先HTML架构先写一个div起名id选择器和类选择器都可以


那么我这里就写一个id选择器吧


<div id="box">
            <span>
            </span>
        </div>


样式写好之后就可以开搭建我们的样式表了


我们可以先给整个屏幕设置一个背景,然后清除他的内外边距,然后我们可以使用grid布局


什么是grid的布局呢


Grid布局是CSS3中的一种新的布局方式,它可以让开发者按照行和列的方式来创建网格状的布局。


相对于传统的布局方式(如Flexbox、float等),Grid布局拥有更强大且灵活的功能,不仅能够指定每个单元格大小、位置,还能够针对整行/列进行操作。其主要优点包括:


1. 网格情况下有更好的对齐方式,包括水平和垂直方向上都可以实现对齐。


2. 在复杂布局之间切换时更容易实现。


3. 使用 Grid 布局系统我们能写出更少、更简洁、可读性更高的CSS代码。


使用Grid布局,通常需要在容器元素上设置`display: grid;`,然后通过`grid-template-rows/grid-template-columns`属性来定义行列数和每个单元格大小;再通过`grid-template-areas`属性指定每个单元格应该占据哪些行列组成;最后使用`grid-row/grid-column`属性来控制子元素在网格中的位置。


这是grid布局的常见属性标签


容器元素:设置display: grid;后即可变成网格容器,里面的子元素将根据网格布局排列。


网格线:指定每行/列的位置。可以通过设置grid-template-rows/grid-template-columns属性来定义行列数和每个单元格大小,也可以通过grid-template-areas属性指定每个单元格应该占据哪些行列组成。


子元素:使用grid-row/grid-column属性来控制子元素在网格中的位置。


我们这里使用place-items:center,place-items: center是一种CSS Grid布局属性,用于居中网格容器内的子元素(grid items),包括水平和垂直方向,然后设置一个最小的视口高度为100vh


display: grid;
                place-items: center;
                min-height: 100vh;


第二部来设置我们的box


#box{ 
                position: relative;
                width: 300px;
                height: 400px;
                border-radius: 20px;
                display: grid;
                place-items: center;
                overflow: hidden;
                }


这样我们就设置好了这个盒子模型,接下来设置两条边框,我们这里使用两个伪元素来写


#box::before{
                content: "";
                position: absolute;
                width: 500px;
                height: 500px;
                background-image: conic-gradient(transparent,transparent,transparent,#ffaaff);
                animation: rotate 4s linear infinite;
            }


#box::after{
                content: "";
                position: absolute;
                width: 500px;
                height: 500px;
                background-image: conic- 
                gradient(transparent,transparent,transparent,#aaaaff);
                animation: rotate 4s linear infinite;
                animation-delay: -2s;
            }

设置三条边为透明一边加上颜色就实现了两个边框拥有不同的颜色效果


然后还需要给我们的span元素来设置一个样式


实现这两条边框


#box span{
                position: absolute;
                inset: 5px;
                border-radius: 16px;
                background-color: #000000;
                z-index: 2;
            }

 

z-index是CSS中的一个属性,用于设置元素的堆叠顺序(stacking order)。当元素重叠时,z-index属性可以指定哪个元素应该在上面显示,以及哪个元素应该在下面隐藏。具体来说,z-index属性定义了一个层级,值越大的元素会出现在更上层。


但是呢运行出来没有显示出来效果因为我们没有加动画


这个边框的动画是这样


@keyframes  rotate{
                from{
                    transform: rotate(0deg);
                }
                to{
                    transform:rotate(360deg) ;
                }
            }


这个意思是旋转360deg是顺时针来旋转一周,然后给我们做动画加上动画


animation: rotate 4s linear infinite;


这里提供源码


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            body{
                background-color: #303030;
                padding: 0;
                margin: 0;
                display: grid;
                place-items: center;
                min-height: 100vh;
            }
            #box{
                position: relative;
                width: 300px;
                height: 400px;
                border-radius: 20px;
                display: grid;
                place-items: center;
                overflow: hidden;
            }
            #box::before{
                content: "";
                position: absolute;
                width: 500px;
                height: 500px;
                background-image: conic-gradient(transparent,transparent,transparent,#ffaaff);
                animation: rotate 4s linear infinite;
            }
            #box::after{
                content: "";
                position: absolute;
                width: 500px;
                height: 500px;
                background-image: conic-gradient(transparent,transparent,transparent,#aaaaff);
                animation: rotate 4s linear infinite;
                animation-delay: -2s;
            }
            #box span{
                position: absolute;
                inset: 5px;
                border-radius: 16px;
                background-color: #000000;
                z-index: 2;
            }
            @keyframes  rotate{
                from{
                    transform: rotate(0deg);
                }
                to{
                    transform:rotate(360deg) ;
                }
            }
        </style>
    </head>
    <body>
        <div id="box">
            <span>
            </span>
        </div>
    </body>
</html>


2.是移动的小球动画



这个圆圈会围绕四周旋转


具体如何做我们试一下就知道了


第一步还是搭好框架


<div class="box"></div>


这里写一个就行,如果你想,你可以多写几个


这里来写我们样式,老规矩清除默认边距


*{
                margin: 0 auto;
                padding: 0;
            }


然后再来设置我们box的盒子


.box{
                position: relative;
                width: 300px;
                height: 300px;
                border: 5px solid #22a6b3;
                margin-top: 200px;
                border-radius: 50%;
                background:transparent;
                animation: move 3s infinite;
            }


给一个相对定位,设置宽高,加5px边框,调整一下上边距,颜色改成透明的,提前先加好动画,因为这也是一个动画的作品


然后我们来设置我们的一个小球,这里可以不需要用两个div,用伪类选择器就够


.box::before{
                content: '';
                position: absolute;
                left: 51px;
                top: 5px;
                width: 30px;
                height: 30px;
                border-radius: 50%;
                background-color: #5555ff;
            }

最后就是动画和上个一样用rotate旋转360deg


@keyframes move{
                from{
                    rotate: 0deg;
                }
                to{
                    rotate: 360deg;
                }
            }

最后给我们box加上动画就可以运行了,接下来源码在这,有兴趣小伙伴可以开动思维来创作自己喜欢的css动画哦


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            *{
                margin: 0 auto;
                padding: 0;
            }
            .box{
                position: relative;
                width: 300px;
                height: 300px;
                border: 5px solid #22a6b3;
                margin-top: 200px;
                border-radius: 50%;
                background:transparent;
                animation: move 3s infinite;
            }
            .box::before{
                content: '';
                position: absolute;
                left: 51px;
                top: 5px;
                width: 30px;
                height: 30px;
                border-radius: 50%;
                background-color: #5555ff;
            }
            @keyframes move{
                from{
                    rotate: 0deg;
                }
                to{
                    rotate: 360deg;
                }
            }
        </style>
    </head>
    <body>
        <div class="box"></div>
        <div class="box"></div>
        <div class="box"></div>
    </body>
</html>


相关文章
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
上下文选择器(迭代选择器):基于祖先或同胞元素选择一个元素 ID和类选择器:基于id#和class的属性值进行选择元素。 属性选择器:基于属性的有无和特征进行选择。 ①上下文选择器: 上下文选择器的语法格式:标签1 标签2{属性:值;} //注意:组合选择器和上下文选择器的区别,组合选择器以逗号隔开, 上下文选择器以空格隔开 ②特殊的上下文选择器 子选择器> : 语法格式:标签1>标签2 解释说明:标签1和标签2
217 0
|
5月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
10月前
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
491 143
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
179 1
|
11月前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
213 34
|
11月前
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
173 22
纯css3实现的百分比渐变进度条加载动画源码
纯css3实现的百分比渐变进度条加载动画特效源码
209 31
|
12月前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
232 6
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
303 7
CSS3制作的聚光灯下倒影文字选装动画特效源码
CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
141 6