当前位置: 首页 > 面试题库 >

CSS3动画无法在野生动物园中使用

卞安邦
2023-03-14
问题内容

我有一些CSS3动画,它可以在所有支持CSS3的浏览器(野生动物园)中完美运行。是不是很奇怪 好的,这是我的代码:

HTML

<div class="right">
    <div class="key-arm"><img src="images/landing/key-arm.png" alt="arm" /></div>
</div>

CSS

.landing .board .right {
    width: 291px;
    height: 279px;
    background: url('../images/landing/key-pnl.png');
    bottom: 16px;
    right: 250px;
    position: absolute;
}
.landing .board .right .key-arm {
    position: absolute;
    left: 44px;
    top: 18px;
    width: 41px;
    height: 120px;
}



/*=== Key Arm Animation ===*/
@-webkit-keyframes keyarm {
    0% { -webkit-transform: rotate(0deg); }
    5% { -webkit-transform: rotate(-14deg); }
    10% { -webkit-transform: rotate(0deg); }
}

@-moz-keyframes keyarm {
    0% { -moz-transform: rotate(0deg); }
    5% { -moz-transform: rotate(-14deg); }
    10% { -moz-transform: rotate(0deg); }
}

@-ms-keyframes keyarm {
    0% { -ms-transform: rotate(0deg); }
    5% { -ms-transform: rotate(-14deg); }
    10% { -ms-transform: rotate(0deg); }
}

@-o-keyframes keyarm {
    0% { -o-transform: rotate(0deg); }
    5% { -o-transform: rotate(-14deg); }
    10% { -o-transform: rotate(0deg); }
}

@keyframes keyarm{
    0% { transform: rotate(0deg); }
    5% { transform: rotate(-14deg); }
    10% { transform: rotate(0deg); }
}


.right .key-arm{
    -webkit-transform-origin: 12px 105px;
       -moz-transform-origin: 12px 105px;  
        -ms-transform-origin: 12px 105px;  
         -o-transform-origin: 12px 105px;  
            transform-origin: 12px 105px;

   -webkit-animation: keyarm 8s ease-in-out 0s infinite;
      -moz-animation: keyarm 8s ease-in-out 4s infinite;
       -ms-animation: keyarm 8s ease-in-out 4s infinite;
        -o-animation: keyarm 8s ease-in-out 4s infinite;
           animation: keyarm 8s ease-in-out 0s infinite;
}

好的,正如我所说的,这在Safari中不起作用,没有任何动作。
而且,仍然并且仅在Safari中,只有在调整屏幕大小时才会显示键区div!它在DOM中存在,但是由于某种原因它没有显示出来!
我究竟做错了什么?

更新:好的,从您的答案中我得知Safari 4不支持@keyframes。这很奇怪,因为在同一页面上,我有一个使用@keyframes的动画!

这是CSS代码:

.board .rays{
    background: url("../images/landing/rays.gif") no-repeat 0 0 red;
    height: 381px;
    left: 251px;
    opacity: 1;
    top: 80px;
    width: 408px;
    position: absolute;
}

.board .bottle{
    background: url("../images/landing/bottle.gif") no-repeat 0 0 lime;
    bottom: 30px;
    height: 405px;
    left: 276px;
    width: 357px;
    z-index: 1;
    position:absolute;
}

/*=== Rays Animation ===*/
@-webkit-keyframes rays{
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
}
@-moz-keyframes rays{
    0% { -moz-transform: rotate(0deg); }
    100% { -moz-transform: rotate(360deg); }
}

.board .rays{
   -webkit-animation: rays 40s linear 0s infinite;
   -moz-animation: rays 40s linear 0s infinite;
   animation: rays 40s linear 0s infinite;
}

和html:

<div class="board">
    <div class="rays"></div>
    <div class="bottle"></div>
</div>

jsFiddle中尝试一下(如果您使用的是Safari 4),您会看到


问题答案:

找到了解决方案。在Safari中,当您使用关键帧时,您需要使用整个百分比:

这是行不通的:

@-webkit-keyframes keyarm {
    0% { -webkit-transform: rotate(0deg); }
    5% { -webkit-transform: rotate(-14deg); }
    10% { -webkit-transform: rotate(0deg); }
}

这将:

@-webkit-keyframes keyarm {
    0% { -webkit-transform: rotate(0deg); }
    5% { -webkit-transform: rotate(-14deg); }
    10% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(0deg); }
}

不知道为什么,但这就是Safari的工作方式!:)



 类似资料:
  • 问题内容: HTML: JS: 如您所见,它在chrome中有效,但在safari中不起作用。它应该做的是,当您单击下拉菜单时,隐藏“ I’M THE CHOSEN ONE”选项。 相同的HTML,这是JS: 无论如何,我需要做的是显示一个选定的选项(当前),并在打开下拉菜单时向用户隐藏,以便他无法选择它。 有什么建议/解决方法吗?我没有看到任何错误。Safari有什么问题?我应该改变方式吗?jQ

  • 问题内容: 我有一个小的动画可以在Firefox中工作,但不能在Webkit浏览器中工作。也许有人看到我花了一个小时才发现的错误原因……这是impress.js演示文稿的一部分,类似于prezi。谢谢! CSS: HTML: 问题答案: 您必须将常规动画规则放在浏览器特定的规则 之后 : 既然你有,等你来设置像每个浏览器的动画:

  • 问题内容: 在我的每个输入字段中,Safari浏览器中都有带箭头的小人物图标。如何禁用它?顺便说一句,我有任何其他类似的页面,并且没有发生。我尝试关闭Web检查器中的所有样式,但一页上仍带有该图标。所以我不知道它是CSS还是HTML。 问题答案: 如果要完全隐藏它,可以使用以下CSS技巧。基本上,它会检测到“联系人自动填充按钮”,并将其从输入字段移开。确保您具有“ absolute:positio

  • #animated_div{ width:76px; height:47px; background:#92B901; color:#ffffff; position:relative; font-weight:bold; font-size:20px; padding:10px; animation:animated_div 5s 1;

  • 我创建了一个简单的动画来使用webkit属性和CSS3在网站上旋转图像。 这里是样式css(它只适用于div) 现在的结果是,在Mozilla Firefox,Chrome和Safari上,它都能正常工作,但在Opera和Internet explorer上我看不到任何动画。

  • 我正在测试我们网站的注册,其中一个字段是选择下拉菜单。该测试在所有 Windows 桌面浏览器上完全有效。它也适用于Mac上的铬。此问题仅在 Mac 浏览器 11.1 上出现: 当尝试选择我想要的选项时,它会报告选择元素不可见。 我的测试是在Visual Studio中通过Browserstack完成的。我有屏幕截图和视频,清楚地显示选择元素是可见的(至少对用户而言)。它不在页面底部,没有页脚覆盖