css 动画 Sprite 表

标签 css animation resize css-animations

我有一个 spritesheet,里面有一个骰子; 6张脸。 它的脸是 70 x 70 像素 总 Sprite 图像为 70 x 420 像素

现在我想制作一个从 1 到 6 的 CSS 动画(这很简单) 另外我想改变尺寸;在 50% 时它的大小加倍,在 100% 时恢复正常。

:local(.mydice)
{
    width: 70px;
    height: 70px;
    background: url('/images/dices.png');   
    background-repeat: no-repeat;
    background-position: 0px 0px;
    background-size: 100% 600%;
    animation: dicemove1 5s steps(6, end) infinite;
}

然后使用关键帧进行更改:

@keyframes dicemove1
{
    0% { background-position: 0px 0px;}
    100% { background-position: 0px -420px; }
}

上面的 CSS 片段有效。 但现在添加代码使其增长失败:

50% { width: 140px; height: 140px; margin-top: -35px; margin-left: -35px; background-position: 0px ???? }

我知道必须更改背景位置以支持更大的尺寸,但问题是我使用了步骤,因为我不想滚动图像但看到它从一个面到另一个面变化(1,2,3,4, 5,6)

将 100 除以 6 不会得到一个很好的整数,这使得 50% 的改变有点困难。 一直在寻找可以处理步骤的关键帧,但还没有找到这样的东西。 任何人都知道这样做的方法吗?

最佳答案

我找到了解决方案。

transform: scale(2,2);

这将使骰子增长。 现在我可以同时使用 2 个动画; 1 换脸其他调整大小

animation: anim1 1s steps(6, end) infinite, anim2 1s steps(36, end) infinite;

@keyframes anim1
{
    0% { background-position: 0px 0px; }
    100% { background-position: 0px -600px; }
}

@keyframes anim2
{
    50% { transform: scale(2,2); }
}

关于css 动画 Sprite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132495/

相关文章:

jquery - 复制 CSS "background-image"的效果 - 替代方法?

swift - 用动画填充水平 View (Swift)

html - 在调整浏览器窗口的宽度和/或高度大小时,如何防止 div 重叠/移动/使我的页面看起来难看

css - html中的水平和垂直居中文本

javascript - D3.js 边缘包图表不会显示在 CSS 网格位置内

javascript - 单击一定数量后更改 div 背景

javascript - "puff of smoke"效果javascript Sprite 动画

javascript - 表格悬停边框颜色删除列线

css - 获取屏幕宽度作为调整大小的变量

excel - VBA Excel 按钮单击后会调整大小(命令按钮)