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

重新启动GIF动画作为背景图像

满耀
2023-03-14
问题内容

是否可以重新启动用作动画GIF background-image

考虑以下HTML:

<div id="face">
    <div id="eyes"></eyes>
</div>

而这种风格:

#eyes.blink {
    background-image:url('blink.gif');
}

我想在blink.gif动画播放每次我的类添加时间blink#eyes,不只是第一次。

我希望这可以工作:

function startBlink() {
    $('#eyes').addClass('blink');
}

function stopBlink() {
    $('#eyes').removeClass('blink');
}

问题在于,一旦Firefox和WebKit浏览器播放一次,它们就不会再次播放背景图像GIF动画。添加/删除班级眨眼仅在第一次时有效。


问题答案:

您可以通过重新加载动画来重播gif。这对于带宽来说并不是理想的选择,尤其是在您的图像较大的情况下,但这会强制重新启动动画。

在我的例子,我添加和删除它onclick<div id="animated">

$('#animated').click(function() {

    /* Reference to the clicked element and toggle the .go class */
    var $div = $(this);
    $div.toggleClass('go');

    /* Start the animated gif */
    if ($div.hasClass('go')) {

        /* Create an <img> element and give it the animated gif as a src.  To 
           force a reload we add a date parameter to the URL */
        var img = document.createElement('img');
        img.src = "http://yoursite.com/animated.gif?p" + new Date().getTime();

        /* Once the image has loaded, set it as the background-image */
        $(img).load(function(){
            $div.css({backgroundImage: "url("+img.src+")"});
        });

    /* Remove the background-image */        
    } else {
       $div.css({backgroundImage: "none"});
    }
})


 类似资料:
  • 我正在尝试创建背景色CSS3关键帧动画后的第一个动画,这是一个背景图像。我无法创建另一个动画后,文字动画淡出。文本动画褪色后,我想背景的不透明度转到0.3,并再次褪色在文本。下面是我所拥有的。 请在此处查看完整代码:codepen:https://codepen.io/imdaone/pen/jjryyv

  • 这是代码https://jsfiddle.net/pk7zetdu/6/链接 尝试用最新的稳定的chrome for windows打开它。 首先,当它加载时,您可以看到幻灯片(div)滚入滚出,然后图像SRC被更改,div第二次滚入新的bg(可能有一个小的img加载延迟)。一切都好! 然后请按小提琴上的“运行”按钮并再次观看。现在,您可以看到幻灯片(div)滚入滚出,而图像SRC发生了更改,但它

  • 1.4. GIF动画 下面的程序会演示Go语言标准库里的image这个package的用法,我们会用这个包来生成一系列的bit-mapped图,然后将这些图片编码为一个GIF动画。我们生成的图形名字叫利萨如图形(Lissajous figures),这种效果是在1960年代的老电影里出现的一种视觉特效。它们是协振子在两个纬度上振动所产生的曲线,比如两个sin正弦波分别在x轴和y轴输入会产生的曲线。

  • 问题内容: 我的网站上有一些CSS3动画,它在Safari上运行良好,但是当我在Firefox中运行该网站时,它没有动画。这是代码: 现在我注意到,当网站点击 如果我将这些更改为 然后就可以了,但是显然我要使用图像。我试过添加-moz-前缀,但是不起作用。我想念什么?有没有办法让Firefox承认 问题答案: 到目前为止,在背景图像之间进行插值的功能是一项非常新的提议,并且在浏览器中并未很好地支持

  • 问题内容: 我正在使用CSS着色器+动画。我的着色器类定义如下: 我正在尝试使用jQuery通过和动态设置/取消设置样式(shader + animation) 但是,奇怪的是,当我重置类时(例如,在removeClass之后调用addClass),仅重新应用了着色器,而没有应用动画(我已钩住AnimationStart事件以查看动画何时开始)。有人知道为什么会这样吗,我该如何解决? 编辑:我在这

  • 问题内容: 我想在应用程序中显示GIF动画图像。我发现,Android本身并不支持动画GIF的困难方式。 但是,它可以使用AnimationDrawable显示动画: 开发>指南>图像和图形> Drawables概述 该示例使用在应用程序资源中另存为帧的动画,但是我需要直接显示动画gif。 我的计划是将动画GIF分解为帧,并将每个帧作为可绘制对象添加到AnimationDrawable中。 有谁知