当前位置: 首页 > 知识库问答 >
问题:

使用@keyframe的Css动画转换不起作用

冯旭
2023-03-14

我正在工作的css动画过渡。我有我的div id mybus。它的位置是相对的。它是多个divs位置相对的容器。我正在尝试移动mybus,它是所有其他div的容器,使用动画转换:translateX()。不是沃金。(问题是,动画时位置重要吗?)我单独地将transform:rotate()动画应用到div类车轮(它也在mybus内部)中,效果很好。(我没有包含这部分代码)如果需要,我可以给出更多关于代码的信息。

null

.mybus{
  position: relative; 
  animation-name:busgo;
  animation-duration: 10s;
  animation-iteration-count: 2;
  animation-timing-function: linear;
  /* animation-delay: 3s;*/
}

@keyframes busgo{
  0%{
    transform: translateX(20px);
  }
  100%{
    transform: translateX(-1220px);
  }   
}

.busBody{
    background-color: yellow;
    position: absolute;
}

#front{
    height:60px;
    width:70px;
    top:130px;
    left:200px;
    border-top-left-radius: 5px;
}

#back{
    height:90px;
    width:200px;
    top:100px;
    left:270px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.window{
    height:20px;
    width:30px;
    background-color: dimgray;
    position: absolute;
    border-radius: 2px;
}

#w1{
    top:110px;
    left:300px;
}

#w2{
    top:110px;
    left:360px;
}

#w3{
    top:110px;
    left:420px;
}
<div id="mybus">
  <div class="busBody" id="front"></div>
  <div class="busBody" id="back"></div>
  <div class="window" id="w1"></div>
  <div class="window" id="w2"></div>
  <div class="window" id="w3"></div>
  <div class="wheel" id="wh1"></div>
  <div class="wheel" id="wh2"></div>
  <div class="headlight"></div>
</div>

null

共有1个答案

谭成业
2023-03-14

您使用的是.mybus而不是#mybus

null

#mybus{
  position: relative; 
  animation-name:busgo;
  animation-duration: 10s;
  animation-iteration-count: 2;
  animation-timing-function: linear;
  /* animation-delay: 3s;*/
}

@keyframes busgo{
  0%{
    transform: translateX(20px);
  }
  100%{
    transform: translateX(-1220px);
  }   
}

.busBody{
    background-color: yellow;
    position: absolute;
}

#front{
    height:60px;
    width:70px;
    top:130px;
    left:200px;
    border-top-left-radius: 5px;
}

#back{
    height:90px;
    width:200px;
    top:100px;
    left:270px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.window{
    height:20px;
    width:30px;
    background-color: dimgray;
    position: absolute;
    border-radius: 2px;
}

#w1{
    top:110px;
    left:300px;
}

#w2{
    top:110px;
    left:360px;
}

#w3{
    top:110px;
    left:420px;
}
<div id="mybus">
  <div class="busBody" id="front"></div>
  <div class="busBody" id="back"></div>
  <div class="window" id="w1"></div>
  <div class="window" id="w2"></div>
  <div class="window" id="w3"></div>
  <div class="wheel" id="wh1"></div>
  <div class="wheel" id="wh2"></div>
  <div class="headlight"></div>
</div>
 类似资料:
  • 问题内容: 我需要旋转div并停止在特定位置(该值将从服务器接收)。 我尝试使用本机JS进行旋转和停止,但它占用了我的CPU大量时间。 我可以旋转CSS动画,但是我需要创建一个类,该类将动态描述停止动画的位置。就像是 提前致谢 问题答案: 好吧,我认为动态创建 它们 并不容易, 因为它们必须是硬编码的,所以它们不灵活。 过渡稍微容易一些,因为它们可以优雅地响应JavaScript进行的CSS更改。

  • 不透明度在打开和关闭时都有效,高度变化仅在打开时有动画效果,在关闭时没有动画效果。 下面是我的代码,但一直没有成功。 查询了各种方案

  • 我正在尝试添加一个css过渡,因此当用户悬停在div上时,后台将像这样放大https://codepen.io/mrsalami/pen/eplzme。但是,转换延迟不起作用。 我得HTML: 我的CSS: 我的问题的代码是https://codepen.io/mrsalami/pen/wkjrjr

  • 问题内容: 我试图通过将其旋转10度来变换菜单项。我的CSS在Firefox中可以使用,但是我无法在Chrome和Safari中复制效果。我知道IE不支持CSS3属性,所以这不是问题。 我使用以下CSS: 有人可以建议我要去哪里错吗? 谢谢。 问题答案: 这只是一个有根据的猜测,而没有看到其余的HTML / CSS: 您申请了还是申请了?如果没有,请尝试。 否则,请尝试应用CSS3转换规则。

  • 问题内容: 我设置了一个动画,可以在Chrome 上正常运行,但是不能在Safari(IOS9 iPhone或9-El Capitan)上运行,也不能在Firefox上运行。 问题答案: @asimovwasright的答案是正确的。 为了避免在CSS上发生太多重复,我将SCSS与一起使用,以遍历所有可用范围(在本例中为8) 和HTML:

  • 问题内容: 我正在尝试使形状的动画随着样本大小的增加(从100增加到1000)而呈指数分布。还有一个滑块,用于配置发行版的lambda参数,以及一个用于启动动画的按钮。 我的问题是,即使布局得到渲染,当我按下开始按钮时也没有动画发生。到目前为止,这是我的尝试: 为了简化起见,我在Python笔记本中运行它: 问题答案: 您应该注意函数的名称空间。 考虑 因此,您需要处理实际对象,而不是它们的某些本