html5 gif 只播放一次,使用JS和canvas实现gif动图的停止和播放代码

HTML5 canvas可以读取图片信息,绘制当前图片。于是可以实现图片马赛克,模糊,色值过滤等很多图片特效。我们这里不用那么复杂,只要读取我们的图片,重绘下就可以。

20179185756068.png?20178185815

JS代码:

图片帧(第一帧)

canvas.getContext('2d').drawImage(this,width,height);

// 重置当前图片

try {

this.src = canvas.toDataURL("image/gif");

} catch(e) {

// 跨域

this.removeAttribute('src');

// 载入canvas元素

canvas.style.position = 'absolute';

// 前面插入图片

this.parentElement.insertBefore(canvas,this);

// 隐藏原图

this.style.opacity = '0';

// 存储canvas

this.storeCanvas = canvas;

}

}

};

}

var image = document.getElementById("testImg"),button = document.getElementById("testBtn");

if (image && button) {

button.onclick = function() {

if (this.value == '停止') {

image.stop();

this.value = '播放';

} else {

image.play();

this.value = '停止';

}

};

}

上面代码并未详尽测试,以及可能的体验问题(IE闪动)没有具体处理(影响原理示意),若要实际使用,需要自己再微调完美下。

不足:

1. IE9+支持。IE7/IE8不支持canvas没搞头。

2. 只能停止gif,不能真正意义的暂停。因为canvas获得的gif图片信息为第一帧的信息,后面的貌似获取不到。要想实现暂停,而不是停止,还需要进一步研究,如果你有方法,非常欢迎分享。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值