jquery 从头开始重新显示已加载的WEBP动画图像

fcwjkofz  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(194)

有一个问题:当最初在页面上加载一个动画webp图像时,一切都正常工作。图像被加载,当加载完成时,它从动画的开始显示。图像的动画是循环的,这意味着即使我把它从页面上隐藏起来,它也会继续播放(CSS类被移除).它作为背景图片插入到DIV元素中.如果需要再次显示动画,我将一个类添加回div中,但动画并不从头开始播放,但从动画是自初始加载的那一刻起。我使用jQuery上的网页。
一个工作选项是添加一个随机值到图像的URL的末尾,但这意味着再次从服务器重新加载它,并且页面上有很多动画webp图像,它们的重量相当大(大约1兆字节),这排除了使用这种方法的人与缓慢的互联网。
亲爱的Maven,告诉我,有没有情况下,模拟加载一个已经加载的图像在浏览器中,并从一开始就播放动画?这是非常可取的解决问题,而不诉诸繁琐的第三方插件。首先,我想了解解决方案的本质,而不是加载一个巨大的插件,并得到一个快速但难以理解的结果。
现在我研究了一些这样的结构,但还没有好的结果

  1. let promise = this.load_image('/images/' + image_url, img);
  2. promise.then((res) => {
  3. this.loaded(); // отображаем изображение
  4. });
  5. load_image: async function(url, elem)
  6. {
  7. return new Promise((resolve, reject) => {
  8. elem.onload = () => resolve(elem);
  9. elem.onerror = reject;
  10. elem.src = url;
  11. });
  12. }```

字符串

kqqjbcuj

kqqjbcuj1#

因此,这似乎与将src设置为“"一样简单,但是我使用setTimeout时运气更好一些
这是我用来做这个的函数;

  1. function restartWEBP(img){
  2. var src = img.src;
  3. img.src = "";
  4. setTimeout(function(){
  5. img.src = src;
  6. }, 1);
  7. };

字符串

相关问题