html5版canvas自由拼图实例

2020-04-20 17:03:19易采站长站整理

本文实例讲述了html5版canvas自由拼图的实现方法。分享给大家供大家参考。具体方法如下:

代码运行效果如下图所示:

 

canvasElement.js代码如下:

复制代码define(‘canvasElement’, [ ‘../multi_upload/core’ ], function(S) {
var Canvas = window.Canvas || {};
(function () {
Canvas.Element = function() {};
Canvas.Element.prototype.fillBackground = true;
Canvas.Element.prototype.showcorners = false;
Canvas.Element.prototype.photoborder = true;
Canvas.Element.prototype.polaroid = false;
Canvas.Element.prototype._backgroundImg = null;
Canvas.Element.prototype._groupSelector = null;
Canvas.Element.prototype._aImages = null;
Canvas.Element.prototype._oContext = null;
Canvas.Element.prototype._oElement = null;
Canvas.Element.prototype._oConfig = null;
Canvas.Element.prototype._currentTransform = null;
Canvas.Element.prototype._prevTransform = null;
Canvas.Element.prototype.curAngle = null;
Canvas.Element.prototype.init = function(el, oConfig) {
if (el == ”) {
return;
}
this._initElement(el);
this._initConfig(oConfig);
this._createCanvasBackground();
this._createContainer();
this._initEvents();
this._initCustomEvents();
};
Canvas.Element.prototype._initElement = function(el) {
this._oElement = document.getElementById(el);
this._oContextTop = this._oElement.getContext(‘2d’);
};
Canvas.Element.prototype._initCustomEvents = function() {
this.onRotateStart = new Canvas.CustomEvent(‘onRotateStart’);
this.onRotateMove = new Canvas.CustomEvent(‘onRotateMove’);
this.onRotateComplete = new Canvas.CustomEvent(‘onRotateComplete’);
this.onDragStart = new Canvas.CustomEvent(‘onDragStart’);
this.onDragMove = new Canvas.CustomEvent(‘onDragMove’);
this.onDragComplete = new Canvas.CustomEvent(‘onDragComplete’);
};
Canvas.Element.prototype._initConfig = function(oConfig) {
this._oConfig = oConfig;
this._oElement.width = this._oConfig.width;
this._oElement.height = this._oConfig.height;
this._oElement.style.width = this._oConfig.width + ‘px’;
this._oElement.style.height = this._oConfig.height + ‘px’;
};
Canvas.Element.prototype._initEvents = function() {
var _this=this;
S(this._oElement).on(‘mousedown’,function(e){
_this.onMouseDown(e);
});
S(this._oElement).on( ‘mouseup’, function(e){
_this.onMouseUp(e);
});
S(this._oElement).on(‘mousemove’, function(e){
_this.onMouseMove(e);
});
};
Canvas.Element.prototype._createContainer = function() {