IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Step of CSS3 -> 正文阅读

[游戏开发]Step of CSS3

Step of CSS3

现在先用一个盒子来学习step的相关特性:

@keyframes change-color {
    0%{
        background-color: red;
    }
    25%{
        background-color: green;
    }
    50%{
        background-color: blue;
    }
    75%{
        background-color: black;
    }
    100%{
        background-color: #fff;
    }
}

div{
    width: 100px;
    height: 100px;
    background-color: red;
    animation: change-color 4s steps(1, end);
}

运行后会发现,每两个关键帧之间,没有了中间的过渡,直接跳转了,如果将1换成2或者更大的数就会在两个关键帧直间再加一帧,传24的话就看起来是连贯动画了。

但是还会发现,最后一个关键帧不显示了,也就是没有白色的那帧,那是因为steps里面传的是end,那么endstart又有什么区别呢:

end

保留当前帧状态,直到这段动画时间结束。

所以如果想显示最后一帧的状态,并且不需要循环的话,就加一个forward属性值,最后一帧就可以显示出来了。

steps(1, end); === step-end

start

保留下一帧状态,直到这段动画时间结束。

start不显示的是第一帧,这个属性值没有end使用的多,而且没有办法去弥补缺失第一帧的这个缺陷。

steps(1, start); === step-start

用两个运动起来的盒子就可以更直观的形式展现出两个属性值的区别

@keyframes run {
    0%{
        left:0;
    }
    25%{
        left:100px;
    }
    50%{
        left:200px;
    }
    75%{
        left:300px;
    }
    100%{
        left:400px;
    }
}

.demo1, .demo2{
    position:absolute;
    left: 0;
    background-color: black;
    width: 100px;
    height: 100px;
    color:#fff;
}
.demo1{
    animation: run 4s step-end forwards;
}
.demo2{
    top:100px;
    animation: run 4s step-start;
}

image-20220216093055304

image-20220216093032406

应用

打字效果

<div>abcdef ghij</div>
@keyframes cursor{
    0%{
        border-left-color: rgba(0,0,0,0);
    }
    50%{
        border-left-color: rgba(0,0,0,1);
    }
    100%{
        border-left-color: rgba(0,0,0,0);
    }
}
@keyframes cover{
    0%{
        left:0;
    }
    100%{
        left:100%;
    }
}
div{
    position: relative;
    display: inline-block;
    height:100px;
    font-size:80px;
    line-height: 100px;
    font-family: monospace;
}
div::after{
    content:"";
    position: absolute;
    left:0;
    top:10px;
    height:90px;
    width:100%;
    background-color: #fff;
    border-left:2px solid black;
    box-sizing:border-box;
    animation:cursor 1s steps(1, end) infinite, cover 12s steps(12, end);
}

录制日期 22-02-16 1-00_00_06-2022_02_16_17_04_58

钟表效果

<div class='clock'>
    <div class="second"></div>
    <div class="minute"></div>
    <div class="hour"></div>
</div>
@keyframes secondrun{
    0%{
        transform:rotate(180deg);
    }
    100%{
        transform:rotate(540deg);   
    }
}
@keyframes minuterun{
    0%{
        transform: rotate(180deg);
    }
    100%{
        transform: rotate(540deg);
    }
}
div.clock{
    position: relative;
    width:512px;
    height:512px;
    background-image: url(clock.png);
    background-size:cover;
    background-repeat: no-repeat;
}
div.second{
    position: absolute;
    left:247px;
    top:180px;
    width:16px;
    height:278px;
    background-image: url(second.png);
    background-size:cover;
    background-repeat: no-repeat;
    transform-origin:center 76px;
    transform:rotate(180deg);
    z-index: 3;
    animation:secondrun 60s steps(60, end) infinite;
}
div.minute{
    position: absolute;
    transform-origin:center 16px;
    left:238px;
    top:240px;
    width:32px;
    height:218px;
    background-image: url(minute.png);
    background-size:cover;
    background-repeat: no-repeat;
    transform:rotate(180deg);
    z-index: 2;
    animation:minuterun 3600s steps(60, end);
}
div.hour{
    position: absolute;
    transform-origin:center 16px;
    left:238px;
    top:240px;
    width:32px;
    height:148px;
    background-image: url(hour.png);
    background-size:cover;
    background-repeat: no-repeat;
    z-index: 1;
}

录制日期 22-02-16-00_00_00-2022_02_16_16_56_47

跑马效果

<div class="horse"></div>
@keyframes run{
    0%{
        background-position: 0 0;

    }
    100%{
        background-position:-2400px 0;
    }
}

div{
    width:200px;
    height:100px;
    background-image:url(horse.png);
    background-repeat: no-repeat;
    background-position: 0 0;
    animation:run .5s steps(12, end) infinite;
}

录制日期 22-02-16 2-00_00_00-2022_02_16_17_07_17


下面是素材:

horse

clock

hour

minute

second

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:31:05  更:2022-02-19 01:33:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 17:54:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码