博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用canvas做一个简单个gif停止和播放
阅读量:5377 次
发布时间:2019-06-15

本文共 1597 字,大约阅读时间需要 5 分钟。

var ImagePlayer = function(options) {  this.control = options.control;  this.image = options.image;  this.STOP_TEXT = '停止';  this.PLAY_TEXT = '开始';  this.drawFirstFrame = function() {};  this.stop = function() {    if (!this.baseUrl) {      this.baseUrl = this.image.src;    }    var canvas = document.createElement('canvas');    var width = this.image.width;    var height = this.image.height;    if (width && height) {      canvas.width = width;      canvas.height = height;      canvas.getContext('2d').drawImage(this.image, 0, 0, width, height);      try {        this.firstFrame = canvas.toDataURL('image/gif');      } catch (e) {        this.image.removeAttribute('src');        canvas.style.position = 'absolute';        this.image.parentElement.insertBefore(canvas, this.image);        this.image.style.opacity = '0';        this.storeCanvas = canvas;      }    }  };  this.play = function() {    if (this.storeCanvas) {      this.storeCanvas.parentElement.removeChild(this.storeCanvas);      this.storeCanvas = null;      this.image.style.opacity = '';    }    if (this.baseUrl) {      this.image.src = this.baseUrl;    }  };  this.handleControl = function() {    if (this.control.value === this.STOP_TEXT) {      this.stop();      this.control.value = this.PLAY_TEXT;    } else {      this.play();      this.control.value = this.STOP_TEXT;    }  };  this.initEvent = function() {    this.control.addEventListener('click', this.handleControl.bind(this), false);  };  this.init = function() {    this.initEvent();  };  this.init();};

转载于:https://www.cnblogs.com/xiaoyucoding/p/8660006.html

你可能感兴趣的文章
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
面向对象
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
As-If-Serial 理解
查看>>
洛谷P1005 矩阵取数游戏
查看>>
无线通信基础(一):无线网络演进
查看>>
关于python中带下划线的变量和函数 的意义
查看>>
linux清空日志文件内容 (转)
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
图片点击轮播(三)-----2017-04-05
查看>>
java中new一个对象和对象=null有什么区别
查看>>
01_1_准备ibatis环境
查看>>
spring注入Properties
查看>>
hash储存机制
查看>>
洛谷 P1991 无线通讯网
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
Docker 安装MySQL5.7(三)
查看>>