JavaScript - 动画 gif 在单击之前保持静态?
JavaScript - Animated gif to remain static until clicked?
我将 .gif 设置为只循环一次,我使用这个小代码在点击时激活它:
<img src="bird.gif" onclick='this.src=this.src'/>
问题是,gif 当前在页面加载时播放,这是我不想要的。我需要图像在单击之前保持静止。
我可以将静态图片换成动画图片,方法是:
<img src="bird2.gif" onclick="changeImage(this)" />
<script>
function changeImage(element) {
element.src = element.bln ? "bird2.gif" : "bird.gif";
element.bln = !element.bln;
}
</script>
但是你必须点击它两次才能再次播放(就像一个 on/off 开关),这有点笨拙而且不太令人满意。
有人有解决办法吗?需要它在加载时是静态的,然后每次点击它都会播放。谢谢
编辑:这些答案似乎是解决方案,但它们对我不起作用。图像保持静止。我不知道其他人在他们的屏幕上看到了什么,但我在 Chrome 中 运行,它只是在点击或鼠标悬停后静止不动。
在您的 changeImage
函数中,您可以调用 setTimeout
使图像在动画完成后切换回静态版本。
据我所知,您无法使用 javascript 控制 gif 动画。一个好主意是有 2 张图像。一个是静态图像,一个是当您单击它时播放的实际 gif。它看起来像这样(未经测试)
HTML
<img id="bird" src="bird.png"/>
jQuery:
var bird = $('#bird'),
bird_gif = '/path/to/bird.gif';
bird.click(function() {
bird.src = bird_gif;
});
纯javascript:
var bird = document.getElementById('bird'),
bird_gif = '/path/to/bird_gif';
bird.onclick = function() {
bird.src = bird_gif;
}
我将 .gif 设置为只循环一次,我使用这个小代码在点击时激活它:
<img src="bird.gif" onclick='this.src=this.src'/>
问题是,gif 当前在页面加载时播放,这是我不想要的。我需要图像在单击之前保持静止。
我可以将静态图片换成动画图片,方法是:
<img src="bird2.gif" onclick="changeImage(this)" />
<script>
function changeImage(element) {
element.src = element.bln ? "bird2.gif" : "bird.gif";
element.bln = !element.bln;
}
</script>
但是你必须点击它两次才能再次播放(就像一个 on/off 开关),这有点笨拙而且不太令人满意。
有人有解决办法吗?需要它在加载时是静态的,然后每次点击它都会播放。谢谢
编辑:这些答案似乎是解决方案,但它们对我不起作用。图像保持静止。我不知道其他人在他们的屏幕上看到了什么,但我在 Chrome 中 运行,它只是在点击或鼠标悬停后静止不动。
在您的 changeImage
函数中,您可以调用 setTimeout
使图像在动画完成后切换回静态版本。
据我所知,您无法使用 javascript 控制 gif 动画。一个好主意是有 2 张图像。一个是静态图像,一个是当您单击它时播放的实际 gif。它看起来像这样(未经测试)
HTML
<img id="bird" src="bird.png"/>
jQuery:
var bird = $('#bird'),
bird_gif = '/path/to/bird.gif';
bird.click(function() {
bird.src = bird_gif;
});
纯javascript:
var bird = document.getElementById('bird'),
bird_gif = '/path/to/bird_gif';
bird.onclick = function() {
bird.src = bird_gif;
}