base64编码动画gif作为CSS背景?

我有一个动画gif编码到我的CSS中如下:

.magicBg { background-image: url(data:image/gif;base64,R0lGODlhAQBkAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0ND ... } 

这个动画gif被编码为播放一次。

然而,一旦这个动画gif作为元素的背景播放一次,它就再也不会播放了。 运用

 $('body').removeClass( 'magicBg' ); $('body').addClass( 'magicBg' ) 

没有效果 – 我们从gif的最后一帧开始。 有没有想法如何在每次添加课程时从头开始播放?

不幸的是, 另一个答案建议使用一些随机url参数从服务器重新加载gif。 唉,这对我的情况不起作用,因为我将图像编码到css本身。 你能为base64数据添加随机日期戳吗?

您可以向数据url添加其他虚假字段以强制重播动画gif:

 //use date timestamp to ensure no duplicates url(data:image/gif;bogus:ABCDEF;base64,R0lGODlhA...); 

很高兴看到嵌入base64 -encoded 加载GIF的趋势正在起飞!

回到手头的问题,你的背景声明中有一个相当常见的拼写错误,为你解决了这个问题 。 下列:

base64,R0lGODlhEAAQAOMAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkv/////////////////////...

本来应该是

base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwE...

但是说真的,你可能只编写了一个损坏的文件(如果你使用的是在线编码工具,那就不是不可能了)。

要解决此问题,我首先下载了您嵌入的文件( 右键单击>查看背景图片>右键单击>另存为…在Firefox上)。 该图像无法正确呈现: 不会“旋转”!

有趣的是,当我将它上传到SO imgur时,它在Finder文件预览中看起来很好。 破指数? 文件上传太快了? 我不太了解GIF格式的技术性,以提供超出推测的洞察力,但我编码了固定文件。

注意:不需要在url()使用引号