我有一个动画GIF循环三次。我注意到在Firefox和Chrome中(还没有检查过其他人)我可以查看一次GIF然后如果我重新加载页面,缓存的GIF根本就没有动画。
有解决方案吗?有没有关于动画GIF的内容我可以改变以防止这种情况发生?
答案 0 :(得分:3)
这是一个非常丑陋的解决方案,但是你可以使用这个,如果你内联调用图像,不是很漂亮,但它有效!
<img src="filename.gif?rand=<?=rand(1,1000);?>" alt="" />
希望有所帮助
答案 1 :(得分:1)
我在这种情况下选择的解决方案是将GET变量附加到图形名称的末尾,以防止在页面刷新时从缓存重新加载图形。
var myImg = new Image();
myImg.src = "image.gif?rnd=" + Math.random();
答案 2 :(得分:1)
Jade O'Connor的解决方案有效,但据说这是一个丑陋的解决方案。 因为每次访问页面时,都会从服务器下载映像。这导致大图像的带宽问题。这也会增加页面加载时间,因此对慢速连接很不利。
有更好的解决方案吗?
我发现了这样的事情:我以循环“永久”模式重新生成动画gif。在我的gif中,有20帧,每帧显示150毫秒。这样循环的一步持续3秒。我还创建了动画最后一帧的jpeg版本。
当页面加载时,我使用window.setTimeout()方法在3秒后用jpeg替换gif。因为,当循环的第一步完成时,我希望最终帧保持不变。但是有时间问题。当显示最后一帧时,动画重新开始,然后我可以用jpeg替换gif。有没有办法检测动画是完成还是重新启动?
答案 3 :(得分:0)
你能否指出我们有问题的GIF?您使用的所有GIF都会发生这种情况吗?所有都是用相同的应用程序制作的?
无论如何,只是不缓存而且瞧,解决了。但我认为你应该使用其他应用程序来创建你的GIF并查看它是否正常工作。
答案 4 :(得分:-5)