小言_互联网的博客

CSS animation动画效果实现精灵图、雪碧图动画,多动画应用

543人阅读  评论(0)

CSS animation动画效果实现精灵图、雪碧图动画,多动画应用

素材下载

  1. 分析图片动画过程

  2. 图片可以分成4*6=24 小图片也就是24帧

    • 方法1 可以把每一行成一个动画,所以可以拆分4个动画
    • 方法2 独立写成一个动画
      • 动画一共24帧 100/24≈4
      • 每4%作为一帧

方法1

页面主要框架

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>特朗普动画</title>
    </head>

<body>
    <div>


    </div>
    <h2>
        hover执行
    </h2>
    <div class="box"></div>
</body>

</html

图解图片每个帧的background-position属性,图片的分辨率为600*400
background-position: 0 0;第一个值是水平位置,第二个值是垂直位置。
下面的值是相对div,图片需要移动的值(px)

图片向左移动为负值,向右相反,图片向上移动为负值,向下相反

CSS样式

 <style>
        div {
            width: 100px;
            height: 100px;
            border: 1px red solid;
            background-image: url("./images/trump_run.png");
            /* 设置背景不重复方便调节 */
            background-repeat: no-repeat;
            /* 多动画使用,隔开   	
            run2 2s 2s steps(5)
            run2规定需要绑定到选择器的 keyframe 名称,
            2s规定完成动画所花费的时间,
            2s规定在动画开始之前的延迟,
            steps(5)规定动画的步数。 */            
            animation: run 2s steps(5), run2 2s 2s steps(5), run3 2s 4s steps(5), run4 2s 6s steps(5);
            animation-iteration-count: infinite, infinite, infinite, infinite;

        }
	//第一行动画
        @keyframes run {
            0% {
                background-position: 0 0;
            }

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

        }
//第二行动画
        @keyframes run2 {

            from {
                background-position: 0px -100px;
            }

            to {
                background-position: -500px -100px;
            }

        }
	//第三行动画
        @keyframes run3 {

            from {
                background-position: -0px -200px;
            }

            to {
                background-position: -500px -200px;
            }

        }
	//第四行动画
        @keyframes run4 {

            from {
                background-position: -0px -300px;
            }

            to {
                background-position: -500px -300px;
            }

        }

        .box {
            animation-play-state: paused;
        }

        .box:hover {
        //鼠标经过执行动画
            animation-play-state: running;
        }
    </style>

效果

方法2

将图片拆分24帧,并写上对应background-position,写完应用动画就行了

@keyframes identifier {
1*4%{background-position: }
2*4%	.
3*4%	.
4*4%	.
5*4%	.
6*4%	.
7*4%
8*4%	.
9*4%
10*4%
11*4%	.
12*4%
13*4%
14*4%	.
15*4%
16*4%
17*4%
18*4%	.
19*4%
20*4%
21*4%	.
22*4%
23*4%	.
24*4%{background-position: }
}

转载:https://blog.csdn.net/weixin_45472872/article/details/106041561
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场