【问题标题】:Getting an image to rotate with css transform使用 css 变换使图像旋转
【发布时间】:2016-01-27 12:06:08
【问题描述】:

我有一个我创建的手的图像,我试图让手看起来好像它正在放弃。图像最初应该是原始形式,即手指向上指向左侧的位置,然后在 4 秒内,我希望手慢慢向右旋转到 70 度点。现在它在 70 度点用手指加载并且什么都不做。

我做错了什么?

#blue {
  background-color: blue;
}
.hand {
    width: auto;
    height: 400px;
    position: relative;
    -webkit-animation-name: wave; /* Chrome, Safari, Opera */
    -webkit-animation-duration: 4s; /* Chrome, Safari, Opera */
    -webkit-animation-iteration-count: 1; /* Chrome, Safari, Opera */
    -webkit-animation-direction: normal; /* Chrome, Safari, Opera */
    animation-name: wave;
    animation-duration: 4s;
    animation-iteration-count: 1;
    animation-direction: normal;
}
 @keyframes wave {
    from,100% {
    -ms-transform: rotate(75deg); /* IE 9 */
    -webkit-transform: rotate(75deg); /* Chrome, Safari, Opera */
    transform: rotate(75deg);
    }
<div id="blue">
  <img src="http://optimumwebdesigns.com/images/hand.png" class="hand">
</div>

【问题讨论】:

  • 语法错误,应该是from { ... } to { ... }
  • 从关键帧块中删除 from,
  • 我这样做了,但它什么也没做... ` @keyframes wave { from {0%}, to {100%} {`
  • @Becky:很抱歉在一个不相关的线程上发表评论,但在我发表评论之前你已经删除了你的问题。如果您只是在寻找有关如何制作边框绘制动画的想法,请查看 - stackoverflow.com/questions/31198304/…
  • @Harry 非常感谢您的帮助!这就是我一直在寻找的。一些东西可以引导我朝着正确的方向前进。我尝试搜索许多不同的东西,但没有出现我正在寻找的东西。我遇到了诸如太阳系自转之类的事情。谢谢!!!

标签: html css animation css-transitions


【解决方案1】:

这是正确的 CSS 动画语法

@keyframes 命名-你的动画{

0% { 不透明度:0; }

100% { 不透明度:1; }

}

你也可以用文字代替步骤

来自 { ... }

到 { ... }

您的代码末尾缺少},并使用相同的属性标记动画的开始和结束...每个状态下的对象都不同,因此您必须分开步骤。

#blue {
  background-color: blue;
}
.hand {
    width: auto;
    height: 400px;
    position: relative;
    -webkit-animation-name: wave; /* Chrome, Safari, Opera */
    -webkit-animation-duration: 4s; /* Chrome, Safari, Opera */
    -webkit-animation-iteration-count: 1; /* Chrome, Safari, Opera */
    -webkit-animation-direction: normal; /* Chrome, Safari, Opera */
    animation-name: wave;
    animation-duration: 4s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
}
 @keyframes wave {
    100% {
    -ms-transform: rotate(75deg); /* IE 9 */
    -webkit-transform: rotate(75deg); /* Chrome, Safari, Opera */
    transform: rotate(75deg);
    }
}
<div id="blue">
  <img src="http://optimumwebdesigns.com/images/hand.png" class="hand">
</div>

更多信息https://css-tricks.com/snippets/css/keyframe-animation-syntax/

【讨论】:

  • 在第一波之后有没有办法让手离开?那么当它要走的时候,一个词会出现在它的位置上?
  • 是的,看起来真的很棒!我可以调整它,但是我怎样才能在第一波初始波之后离开呢?我知道如果将其设置为背景图像并设置background-repeat: no-repeat,则可以完成,但我不确定当它是图像时该怎么做。另外,我刚刚尝试了背景图像的方式,结果并不漂亮。
  • 这一切都非常抽象,究竟应该如何“消失”?什么方向?它的尺寸会缩小吗?它会飞出屏幕吗?移动时会褪色吗?
  • 哦,好的。只需将动画计数设置为 1 即可完成(我将其设为无限)。此外,默认情况下 CSS 会将动画重置为第一帧,因此如果元素在 100% 处消失,动画结束后它将重置为 0%。为了解决这个问题,无论如何我们添加属性animation-fill-mode: forwards;,这是一个工作小提琴jsfiddle.net/azizn/10r5ygmg/2
  • 是的,我会选择 javascript 来更好地控制复杂的序列,CSS 动画有它的怪癖,但对于简单的东西来说它很棒。祝你好运,度过愉快的一天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多