srcを一瞬別の画像にしてすぐにもとの画像に戻すとGIFを最初から再生できると教えてもらって,へえと思ったので実験.
ページ内に同じURLのGIFが表示されているときは最初に戻らないようだった.URLの末尾に?1とか?2とかダミーのパラメータをつけてURLを変えると回避できるけど,その枚数分ロードされるので通信量は上がってしまう.
| (() => { | |
| const gif = document.querySelector('#the-gif'); | |
| const originalSrc = gif.src; | |
| const empty = 'https://cdn-ak2.f.st-hatena.com/images/fotolife/h/hitode909/20171101/20171101190546.gif'; | |
| let speed = 10; | |
| const main = () => { | |
| gif.src = empty; | |
| window.requestAnimationFrame(() => { | |
| gif.src = originalSrc; | |
| }); | |
| speed *= 1.1; | |
| if (speed > 5000) speed = 10; | |
| setTimeout(main, speed); | |
| }; | |
| main(); | |
| })(); |