如何在css中创建响应式精灵表动画?

时间:2014-10-22 07:49:47

标签: javascript css html5 animation sprite

我一直试图这么做几个小时,但到目前为止我还没有取得任何进展。

我的网站中有一些动画,有些会在点击时激活,有些会在悬停时激活。与此网站中的动画类似的东西:http://www.pixelwrapped.com/猫尾巴具有反应性,就像你缩放它同时随之缩放的broswer一样。

这是我用来创建动画的代码

.monster {
            position: absolute;
            width: 100px;
            height: 100px;
            margin: 2% auto;
            background: url('img/le-cloud.png') left center;
            overflow: auto;
            display: block;
            left: 20%;
            top: 40%;

        }
        .monster:hover {
            position: absolute;
            width: 100px;
            height: 100px;
            margin: 2% auto;
            background: url('img/le-cloud.png') left center;
            animation: play .9s steps(18);
            overflow: auto;
            display: block;
            left: 20%;
            top: 40%;

        }

我找到了使用百分比的this教程,在这个例子中用于更改1帧而不是播放整个18帧,我有其他动画由超过30个精灵组成,我查看了spritely.js但它没有响应。

任何想法我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我终于想出了如何做到这一点!万一有人还在乎,让我做一些解释,这样你就不会经历我的经历:

    <style>
      div.sprite {
            margin: 0 auto;
            width: 40%;
/*            Change this to what ever value you desire*/
            height: 0;
            padding-bottom: 40%;
            background-image: url("le-cloud-copy.png");
/*            Add the sprite sheet here, must be on a staright line*/
            background-position: 0 0;
            background-size: 1800%;
/*            I have 18 sprites in the sheet thus it's 1800%, if it was 4 you'd use 400% and so on*/
            display: block;
        }
        div.sprite:hover {
/*            background-position: 500% 0;*/
            animation: play .9s steps(18);
/*            18 steps to go over al the sprites i have, if you had 4 in the sprite the value would be 4 for example */
        }
        @keyframes play {
            100% {
                background-position: 1800% 0;
            }
        }
    </style>

神奇的位是here包括这个库,这应该有效。

<script src="js/prefixfree.min.js"></script>