您的位置:首页 > Web前端 > > 正文

css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)

更多 时间:2022-03-30 09:32:28 类别:Web前端 浏览量:722

css3中的过渡属性的几种方法

基于CSS3实现的几个小loading效果

CSS3实现的几个小loading效果

昨晚上闲的没事突然想做几个小loading效果,下面是昨晚上做的几个小案例,分享给大家

    1.水波loading:这个loading是我觉得非常简单,但是看上去的效果却非常不错的一个小loading

css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果) 

     这个是效果图片

    下面我直接把代码放上来,大家需要的可以直接拉走

               核心思想:(旋转,以及overflow:hidden属性),可以把代码中的overflow属性注释掉,保准你看一眼明白了,看不明白回来找我,我对你负责

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0
            }
            body {
                background-color: black
            }
            .box {
                margin: 200px auto;
                height: 50px;
                width: 50px;
                border-radius: 10px;
                background-color: rgb(0, 174, 255);
                position: relative;
                overflow: hidden;
                border: 1px solid rgb(0, 174, 255);
                border-top: none;
            }
            .a {
                width: 200px;
                height: 200px;
               background: black;
                position: absolute;
                left: -80px;
                top: -180px;
                border-radius: 80px;
                animation: xuanzhuan 5s linear infinite;
                z-index: 2
            }
            @keyframes xuanzhuan{
                0%{transform: rotate(0deg)}
                100%{transform: rotate(360deg)}
            }
        </style>
    </head>
    <body>
        <li class="box">
            <li class="a"></li>
            <li class="b"></li>
        </li>
    </body>
    </html> 
    
  •   2.普通的圆形loading    这个也很简单  没啥好说的,直接上代码了

    css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
        *{margin: 0;padding: 0}
        li{list-style: none}
        body,html{
            background-color: black;
        }
        ul{
            height: 40px;
            width: 200px;
            margin: 50px auto;
        }
        ul>li{
            float: left;
            height: 20px;
            width: 20px;
            border-radius: 50%;
            background: white;
            margin-left: 10px;
            animation: move 2s infinite alternate;
            transform: scale(0.5)
        }
        ul>li:nth-of-type(2){
            animation-delay: 0.5s;
        }
        ul>li:nth-of-type(3){
            animation-delay:1s;
        }
        @keyframes move{
            0%{transform: scale(0.5);opacity: 0.5}
            100%{transform: scale(1);opacity: 1;}
        }
        </style>
    </head>
    <body>
        <ul>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </body>
    </html>
    
  •   3.圆形转圈loading

      思想(把小圆用定位排成圆形,再给每个上添加动画,用delay控制延迟事件即可)

    css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)

  • <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            .d1{
                width: 50px;
                height: 50px;
                position: absolute;
                margin: 100px;
            }
            .d1 p{
                width: 14px;
                height: 14px;
                border-radius: 50%;
                background: red;
                position: absolute;
                animation: dong 1.5s linear infinite;
            }
            .d1 p:nth-child(1){
                top: 0;
                left: 0;
            }
            .d1 p:nth-child(2){
                top: 0;
                right: 0;
            }
            .d1 p:nth-child(3){
                right: 0;
                bottom: 0;
            }
            .d1 p:nth-child(4){
                bottom: 0;
                left: 0;
            }
            .d1:nth-of-type(2){
                transform: rotate(45deg);
            }
            @keyframes dong{
                0%{
                    transform: scale(0);
                }
                50%{
                    transform: scale(1);
                }
                100%{
                    transform: scale(0);
                }
            }
            .d1:nth-of-type(1) p:nth-of-type(1){
                /*负值:动画直接开始,但跳过前...秒动画*/
                animation-delay: -0.1s;
            }
            .d1:nth-of-type(2) p:nth-of-type(1){
                animation-delay: -0.3s;
            }
            .d1:nth-of-type(1) p:nth-of-type(2){
                animation-delay: -0.5s;
            }
            .d1:nth-of-type(2) p:nth-of-type(2){
                animation-delay: -0.7s;
            }
            .d1:nth-of-type(1) p:nth-of-type(3){
                animation-delay: -0.9s;
            }
            .d1:nth-of-type(2) p:nth-of-type(3){
                animation-delay: -1.1s;
            }
            .d1:nth-of-type(1) p:nth-of-type(4){
                animation-delay: -1.3s;
            }
            .d1:nth-of-type(2) p:nth-of-type(4){
                animation-delay: -1.5s;
            }
        </style>
        <body>
            <li class="d1">
                <p></p>
                <p></p>
                <p></p>
                <p></p>
            </li>
            <li class="d1">
                <p></p>
                <p></p>
                <p></p>
                <p></p>
            </li>
        </body>
    </html>
    
  •     4.交叉效果

        这个稍微复杂一点,其实只要捋明白思路,也挺简单的(PS:大家可以把动画挨个取消试试,你就会发现好像并不是很难)

    css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)

  • <!doctype html>
    <html lang="zh-cn">
    <head>
        <meta charset="UTF-8">
        <meta name="renderer" content="webkit">
    </head>
    <body>
        <style>
            body {
                background-color: #F5F5F5;
                padding: 100px 120px;
            }
            .box {
                margin-left: 500px;
                display: block;
                width: 64px;
                height: 64px;
                transform-origin: 16px 16px;
                /* 旋转 */
                animation: xuanzhuan 5s infinite;
            }
            /* 平移 */
            .ping {
                animation: pingyi 2.5s infinite;
                position: absolute;
            }
           .hang {
                width: 64px;
                height: 24px;
                position: absolute;
            }
            .hang:nth-child(0) {
                transform: rotate(0deg);
            }
            .hang:nth-child(1) {
                transform: rotate(90deg);
            }
            .hang:nth-child(2) {
                transform: rotate(180deg);
            }
            .hang:nth-child(3) {
                transform: rotate(270deg);
            }
            /* 第一个小珠子 */
           .ping:nth-child(1) {
                width: 8px;
                height: 8px;
                top: 50%;
                left: 50%;
                margin-top: -4px;
                margin-left: -4px;
                border-radius: 4px;
                animation-delay: -0.3s;
            }
            /* 第二个小珠子 */
            .ping:nth-child(2) {
                width: 16px;
                height: 16px;
                top: 50%;
                left: 50%;
                margin-top: -8px;
                margin-left: -8px;
                border-radius: 8px;
                -webkit-animation-delay: -0.6s;
                animation-delay: -0.6s;
            }
             /* 第三个小珠子 */    
            .ping:nth-child(3) {
                width: 24px;
                height: 24px;
                top: 50%;
                left: 50%;
                margin-top: -12px;
                margin-left: -12px;
                border-radius: 12px;
                animation-delay: -0.9s;
            }
            .blue {
                background-color: #1f4e5a;
            }
            .red {
                background-color: #ff5955;
            }
            .yellow {
                background-color: #ffb265;
            }
            .green {
                background-color: #00a691;
            }
            @keyframes xuanzhuan {
                0% { transform: rotate(0deg);}
                100% { transform: rotate(360deg);}
         }
            @keyframes pingyi {
                0% {transform: translateX(0);}
                 25% { transform: translateX(-64px); }
                75% { transform: translateX(32px);} 
                100% {transform: translateX(0);}
            }
        </style>
            <li class="box">
                <li class="hang">
                    <li class="ping blue"></li>
                    <li class="ping blue"></li>
                    <li class="ping blue"></li>
                </li>
                <li class="hang">
                    <li class="ping yellow"></li>
                    <li class="ping yellow"></li>
                    <li class="ping yellow"></li>
                </li>
                <li class="hang">
                    <li class="ping red"></li>
                    <li class="ping red"></li>
                    <li class="ping red"></li>
                </li>
                <li class="hang">
                    <li class="ping green"></li>
                    <li class="ping green"></li>
                    <li class="ping green"></li>
                </li>
            </li>
    </body>
    </html>
    
  •    5.圆形正方形切换小loading

    css3中的过渡属性的几种方法(基于CSS3实现的几个小loading效果)

      这个是真的简单!!!!!

  • <!doctype html>
    <html lang="zh-cn">
    <head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <link rel="shortcut icon" type="images/x-icon" href="/template/images/ufw.ico">
    <title>loading-04</title>
    </head>
    <body>
    <style>
        body{ 
            padding: 80px 100px;
        }
        .csshub-loading-icon{
            padding:10px;
            width:10px;
            height:10px;
            border-top:20px solid #ED5548; 
            border-right:20px solid #599CD3;
            border-bottom: 20px solid #5CBD5E;
            border-left:20px solid #FDD901;
            background:transparent;
            animation: csshub-rotate-right-round 1.2s ease-in-out infinite  alternate ;
        }
        @keyframes csshub-rotate-right-round
            {
            0% { transform: rotate(0deg);}
            50% {transform: rotate(180deg); }
            100% {transform: rotate(360deg);border-radius:50%;}
        }
    </style>
        <li class="csshub-loading-icon"></li>
    </body>
    </html>
    
  • 我没做兼容,要是再某些浏览器不能运行,加一下浏览器前缀就好啦!
     

    以上所述是小编给大家介绍的CSS3实现的几个小loading效果 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!

    标签:CSS3 loading
    您可能感兴趣