CSS幻灯片无法在Firefox中运行

时间:2014-02-20 08:32:18

标签: html css firefox cross-browser

我有点卡住试图让以下代码在Firefox中正常运行,它在Chrome中运行良好,但在Firefox中不起作用,如果有人可以提供帮助,我会很高兴。

CSS

.SlidingPhotoFrame{ max-width:100%;  -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #bbe3ff; padding:5px; margin-bottom:10px;  background-color:white; }

.SlidingPhoto { 
padding-top: 50.20%;  /* 450px/800px = 0.5625 */
margin:0; text-align:center; 

background:url(Slideshow/1.JPG)) center top no-repeat; 
background-size: cover;
-moz-background-size: cover;  /* Firefox 3.6 */
background-position: center;  /* Internet Explorer 7/8 */

animation-name:PhotoFrames;
animation-duration:20s;
animation-timing-function:ease-in-out;
animation-delay:0s;
animation-iteration-count:infinite;
animation-play-state:running;

    /* Safari and Chrome: */
-webkit-animation-name:PhotoFrames;
-webkit-animation-duration:20s;
-webkit-animation-timing-function:ease-in-out;
-webkit-animation-delay:0s;
-webkit-animation-iteration-count:infinite;
-webkit-animation-play-state:running;
}


@keyframes PhotoFrames
{
0%   {background:url(Slideshow/1.JPG) center top no-repeat; }
23%  {background:url(Slideshow/1.JPG) center top no-repeat; }

25%  {background:url(Slideshow/2.JPG) center top no-repeat; }
47%  {background:url(Slideshow/2.JPG) center top no-repeat; }

50%  {background:url(Slideshow/3.JPG) center top no-repeat; }
74%  {background:url(Slideshow/3.JPG) center top no-repeat; }

75%  {background:url(Slideshow/4.JPG) center top no-repeat; }
97%  {background:url(Slideshow/4.JPG) center top no-repeat; }

100%  {background:url(Slideshow/1.JPG) center top no-repeat; }
}

@-webkit-keyframes PhotoFrames /* Safari and Chrome */
{
0%   {background:url(Slideshow/1.JPG) center top no-repeat; }
23%  {background:url(Slideshow/1.JPG) center top no-repeat; }

25%  {background:url(Slideshow/2.JPG) center top no-repeat; }
47%  {background:url(Slideshow/2.JPG) center top no-repeat; }

50%  {background:url(Slideshow/3.JPG) center top no-repeat; }
74%  {background:url(Slideshow/3.JPG) center top no-repeat; }

75%  {background:url(Slideshow/4.JPG) center top no-repeat; }
97%  {background:url(Slideshow/4.JPG) center top no-repeat; }

100%  {background:url(Slideshow/1.JPG) center top no-repeat; }
}

** HTML **

<div class="SlidingPhotoFrame">
  <figure class="SlidingPhoto"></figure>
</div>

如果有更好的方法来做同样的事情,请建议,我尽可能保持代码尽可能简单。尚未检查Safari或IE ...对此的任何建议也会很棒。

3 个答案:

答案 0 :(得分:0)

您可以查看以下基于现代跨浏览器的示例。 我认为您需要使用-moz前缀才能使用Mozilla Firefox。

-moz-animation-name:PhotoFrames;
-moz-animation-duration:20s;
-moz-animation-timing-function:ease-in-out;
-moz-animation-delay:0s;
-moz-animation-iteration-count:infinite;
-moz-animation-play-state:running;

请参阅jsfiddle

上的这个

答案 1 :(得分:0)

这是一个演示,请将其与您的图像一起使用以获得更好的视图。 Here is a JSFiddle of it

使用此CSS代码和HTML代码:

<div class="SlidingPhotoFrame">
  <figure class="SlidingPhoto"></figure>
</div>


.SlidingPhotoFrame{ max-width:100%;  -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #bbe3ff; padding:5px; margin-bottom:10px;  background-color:white; }

.SlidingPhoto { 
padding-top: 50.20%;  /* 450px/800px = 0.5625 */
margin:0; text-align:center; 

background:url(http://lorempixel.com/400/200/) center top no-repeat; 
background-size: cover;
-moz-background-size: cover;  /* Firefox 3.6 */
background-position: center;  /* Internet Explorer 7/8 */

animation-name:PhotoFrames;
animation-duration:20s;
animation-timing-function:ease-in-out;
animation-delay:0s;
animation-iteration-count:infinite;
animation-play-state:running;
animation-fill-mode: forwards;

    /* Safari and Chrome: */
-webkit-animation-name:PhotoFrames;
-webkit-animation-duration:20s;
-webkit-animation-timing-function:ease-in-out;
-webkit-animation-delay:0s;
-webkit-animation-iteration-count:infinite;
-webkit-animation-play-state:running;
-webkit-animation-fill-mode: forwards;
}


@keyframes PhotoFrames
{
0% {
        opacity: 0;
        left: -100px;
    }

    50% {
        opacity: 1;
    }

    75% {
        background:url(http://lorempixel.com/400/200/) center top no-repeat;
        opacity: 1;
        left: 100px;
    }

    100% {
        background:url(http://lorempixel.com/400/200/) center top no-repeat;
        opacity: 0;
        left: 500px;
    }

答案 2 :(得分:0)

这不起作用,因为Firefox不支持背景图像上的动画。背景图像不可动画。 Chrome有自己的实现,但你不会让它在Firefox上运行。 https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties