html5中文学习网

您的位置: 首页 > html5教程 > 高级应用 » 正文

html5版canvas自由拼图实例_html5教程技巧

[ ] 已经帮助:人解决问题
这篇文章主要为大家介绍了html5版canvas自由拼图实例,较为详细的讲述了该功能的完整实现过程,具有一定的参考学习价值,需要的朋友可以参考下

本文实例讲述了html5版canvas自由拼图的实现方法。分享给大家供大家参考。具体方法如下:MdPHTML5中文学习网 - HTML5先行者学习网

代码运行效果如下图所示:MdPHTML5中文学习网 - HTML5先行者学习网

 MdPHTML5中文学习网 - HTML5先行者学习网

canvasElement.js代码如下:MdPHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
define('canvasElement', [ '../multi_upload/core' ], function(S) {MdPHTML5中文学习网 - HTML5先行者学习网
var Canvas = window.Canvas || {};MdPHTML5中文学习网 - HTML5先行者学习网
(function () {MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element = function() {}; MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.fillBackground = true;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.showcorners = false;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.photoborder = true;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.polaroid = false;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._backgroundImg = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._groupSelector = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._aImages = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._oContext = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._oElement = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._oConfig = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._currentTransform = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._prevTransform = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.curAngle = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.init = function(el, oConfig) {MdPHTML5中文学习网 - HTML5先行者学习网
if (el == '') {MdPHTML5中文学习网 - HTML5先行者学习网
return;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this._initElement(el);MdPHTML5中文学习网 - HTML5先行者学习网
this._initConfig(oConfig);MdPHTML5中文学习网 - HTML5先行者学习网
this._createCanvasBackground();MdPHTML5中文学习网 - HTML5先行者学习网
this._createContainer();MdPHTML5中文学习网 - HTML5先行者学习网
this._initEvents();MdPHTML5中文学习网 - HTML5先行者学习网
this._initCustomEvents();MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._initElement = function(el) {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement = document.getElementById(el);MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop = this._oElement.getContext('2d');MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._initCustomEvents = function() {MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateStart = new Canvas.CustomEvent('onRotateStart');MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateMove = new Canvas.CustomEvent('onRotateMove'); MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateComplete = new Canvas.CustomEvent('onRotateComplete');MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragStart = new Canvas.CustomEvent('onDragStart'); MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragMove = new Canvas.CustomEvent('onDragMove');MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragComplete = new Canvas.CustomEvent('onDragComplete');MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._initConfig = function(oConfig) {MdPHTML5中文学习网 - HTML5先行者学习网
this._oConfig = oConfig;MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.width = this._oConfig.width;MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.height = this._oConfig.height;MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.width = this._oConfig.width + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.height = this._oConfig.height + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._initEvents = function() {MdPHTML5中文学习网 - HTML5先行者学习网
var _this=this;MdPHTML5中文学习网 - HTML5先行者学习网
S(this._oElement).on('mousedown',function(e){MdPHTML5中文学习网 - HTML5先行者学习网
_this.onMouseDown(e);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S(this._oElement).on( 'mouseup', function(e){MdPHTML5中文学习网 - HTML5先行者学习网
_this.onMouseUp(e);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S(this._oElement).on('mousemove', function(e){MdPHTML5中文学习网 - HTML5先行者学习网
_this.onMouseMove(e);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._createContainer = function() {MdPHTML5中文学习网 - HTML5先行者学习网
var canvasEl = document.createElement('canvas');MdPHTML5中文学习网 - HTML5先行者学习网
canvasEl.id = this._oElement.id + '-canvas-container';MdPHTML5中文学习网 - HTML5先行者学习网
var oContainer = this._oElement.parentNode.insertBefore(canvasEl, this._oElement);MdPHTML5中文学习网 - HTML5先行者学习网
oContainer.width = this._oConfig.width;MdPHTML5中文学习网 - HTML5先行者学习网
oContainer.height = this._oConfig.height;MdPHTML5中文学习网 - HTML5先行者学习网
oContainer.style.width = this._oConfig.width + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
oContainer.style.height = this._oConfig.height + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextContainer = oContainer.getContext('2d'); MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._createCanvasBackground = function() {MdPHTML5中文学习网 - HTML5先行者学习网
var canvasEl = document.createElement('canvas');MdPHTML5中文学习网 - HTML5先行者学习网
canvasEl.id = this._oElement.id + '-canvas-background';MdPHTML5中文学习网 - HTML5先行者学习网
var oBackground = this._oElement.parentNode.insertBefore(canvasEl, this._oElement);MdPHTML5中文学习网 - HTML5先行者学习网
oBackground.width = this._oConfig.width;MdPHTML5中文学习网 - HTML5先行者学习网
oBackground.height = this._oConfig.height;MdPHTML5中文学习网 - HTML5先行者学习网
oBackground.style.width = this._oConfig.width + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
oBackground.style.height = this._oConfig.height + 'px';MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextBackground = oBackground.getContext('2d'); MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.setCanvasBackground = function(oImg) {MdPHTML5中文学习网 - HTML5先行者学习网
this._backgroundImg = oImg;MdPHTML5中文学习网 - HTML5先行者学习网
var originalImgSize = oImg.getOriginalSize();MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextBackground.drawImage(oImg._oElement, 0, 0, originalImgSize.width, originalImgSize.height);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.onMouseUp = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
if (this._aImages == null) {MdPHTML5中文学习网 - HTML5先行者学习网
return;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (this._currentTransform) {MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.setImageCoords();MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (this._currentTransform != null && this._currentTransform.action == "rotate") {MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateComplete.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
} else if (this._currentTransform != null && this._currentTransform.action == "drag") {MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragComplete.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform = null;MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector = null;MdPHTML5中文学习网 - HTML5先行者学习网
this.renderTop();MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.onMouseDown = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
var mp = this.findMousePosition(e);MdPHTML5中文学习网 - HTML5先行者学习网
if (this._currentTransform != null || this._aImages == null) {MdPHTML5中文学习网 - HTML5先行者学习网
return;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
var oImg = this.findTargetImage(mp, false);MdPHTML5中文学习网 - HTML5先行者学习网
if (!oImg) {MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector = { ex: mp.ex, ey: mp.ey,MdPHTML5中文学习网 - HTML5先行者学习网
top: 0, left: 0 };MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else { MdPHTML5中文学习网 - HTML5先行者学习网
var action = (!this.findTargetCorner(mp, oImg)) ? 'drag' : 'rotate';MdPHTML5中文学习网 - HTML5先行者学习网
if (action == "rotate") {MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateMove.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
} else if (action == "drag") {MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragMove.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this._prevTransform=this._currentTransform = { MdPHTML5中文学习网 - HTML5先行者学习网
target: oImg,MdPHTML5中文学习网 - HTML5先行者学习网
action: action,MdPHTML5中文学习网 - HTML5先行者学习网
scalex: oImg.scalex,MdPHTML5中文学习网 - HTML5先行者学习网
offsetX: mp.ex - oImg.left,MdPHTML5中文学习网 - HTML5先行者学习网
offsetY: mp.ey - oImg.top,MdPHTML5中文学习网 - HTML5先行者学习网
ex: mp.ex, ey: mp.ey,MdPHTML5中文学习网 - HTML5先行者学习网
left: oImg.left, top: oImg.top,MdPHTML5中文学习网 - HTML5先行者学习网
theta: oImg.theta MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.transform='rotate('+oImg.theta*180/3.14+'deg)';MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.left=oImg.left+"px";MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.top=oImg.top+"px";MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.display="block";MdPHTML5中文学习网 - HTML5先行者学习网
this.renderAll(false,false);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.onMouseMove = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
var mp = this.findMousePosition(e);MdPHTML5中文学习网 - HTML5先行者学习网
if (this._aImages == null) {MdPHTML5中文学习网 - HTML5先行者学习网
return;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (this._groupSelector != null) {MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.left = mp.ex - this._groupSelector.ex;MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.top = mp.ey - this._groupSelector.ey;MdPHTML5中文学习网 - HTML5先行者学习网
this.renderTop();MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if (this._currentTransform == null) {MdPHTML5中文学习网 - HTML5先行者学习网
var targetImg = this.findTargetImage(mp, true);MdPHTML5中文学习网 - HTML5先行者学习网
this.setCursor(mp, targetImg);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
if (this._currentTransform.action == 'rotate') {MdPHTML5中文学习网 - HTML5先行者学习网
this.rotateImage(mp);MdPHTML5中文学习网 - HTML5先行者学习网
this.scaleImage(mp);MdPHTML5中文学习网 - HTML5先行者学习网
this.onRotateMove.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
} MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
this.translateImage(mp);MdPHTML5中文学习网 - HTML5先行者学习网
this.onDragMove.fire(e);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this.renderTop();MdPHTML5中文学习网 - HTML5先行者学习网
} MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.translateImage = function(mp) {MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.left = mp.ex - this._currentTransform.offsetX;MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.top = mp.ey - this._currentTransform.offsetY;MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.left=this._currentTransform.target.left+"px";MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.top=this._currentTransform.target.top +"px";MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.scaleImage = function(mp) {MdPHTML5中文学习网 - HTML5先行者学习网
var lastLen = MdPHTML5中文学习网 - HTML5先行者学习网
Math.sqrt(Math.pow(this._currentTransform.ey - this._currentTransform.top, 2) +MdPHTML5中文学习网 - HTML5先行者学习网
Math.pow(this._currentTransform.ex - this._currentTransform.left, 2));MdPHTML5中文学习网 - HTML5先行者学习网
var curLen = MdPHTML5中文学习网 - HTML5先行者学习网
Math.sqrt(Math.pow(mp.ey - this._currentTransform.top, 2) +MdPHTML5中文学习网 - HTML5先行者学习网
Math.pow(mp.ex - this._currentTransform.left, 2));MdPHTML5中文学习网 - HTML5先行者学习网
var curScalex= this._currentTransform.scalex * (curLen / lastLen);MdPHTML5中文学习网 - HTML5先行者学习网
var curScaley=this._currentTransform.target.scalex;MdPHTML5中文学习网 - HTML5先行者学习网
if(curScalex>0.7&&curScaley>0.7){MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.scalex =curScalex;MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.scaley = curScaley;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.rotateImage = function(mp) {MdPHTML5中文学习网 - HTML5先行者学习网
var lastAngle = Math.atan2(MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.ey - this._currentTransform.top,MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.ex - this._currentTransform.leftMdPHTML5中文学习网 - HTML5先行者学习网
);MdPHTML5中文学习网 - HTML5先行者学习网
MdPHTML5中文学习网 - HTML5先行者学习网
var curAngle = Math.atan2(MdPHTML5中文学习网 - HTML5先行者学习网
mp.ey - this._currentTransform.top,MdPHTML5中文学习网 - HTML5先行者学习网
mp.ex - this._currentTransform.leftMdPHTML5中文学习网 - HTML5先行者学习网
);MdPHTML5中文学习网 - HTML5先行者学习网
this._currentTransform.target.theta = (curAngle - lastAngle) + this._currentTransform.theta;MdPHTML5中文学习网 - HTML5先行者学习网
this.curAngle=this._currentTransform.target.theta*180/3.14;MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.transform='rotate('+this.curAngle+'deg)';MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.setCursor = function(mp, targetImg) {MdPHTML5中文学习网 - HTML5先行者学习网
if (!targetImg) {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'default';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else { MdPHTML5中文学习网 - HTML5先行者学习网
var corner = this.findTargetCorner(mp, targetImg);MdPHTML5中文学习网 - HTML5先行者学习网
if (!corner) MdPHTML5中文学习网 - HTML5先行者学习网
{MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'default';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
elseMdPHTML5中文学习网 - HTML5先行者学习网
{MdPHTML5中文学习网 - HTML5先行者学习网
if(corner == 'tr') {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'ne-resize';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if(corner == 'br') {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'se-resize';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if(corner == 'bl') {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'sw-resize';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if(corner == 'tl') {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'nw-resize';MdPHTML5中文学习网 - HTML5先行者学习网
} MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.style.cursor = 'default';MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.addImage = function(oImg) {MdPHTML5中文学习网 - HTML5先行者学习网
if(S.isEmptyObject(this._aImages)) {MdPHTML5中文学习网 - HTML5先行者学习网
this._aImages = [];MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this._aImages.push(oImg);MdPHTML5中文学习网 - HTML5先行者学习网
this.renderAll(false,true);</p><p> };MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.renderAll = function(allOnTop,allowCorners) {MdPHTML5中文学习网 - HTML5先行者学习网
var containerCanvas = (allOnTop) ? this._oContextTop : this._oContextContainer;MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.clearRect(0,0,parseInt(this._oConfig.width), parseInt(this._oConfig.height));MdPHTML5中文学习网 - HTML5先行者学习网
containerCanvas.clearRect(0,0,parseInt(this._oConfig.width), parseInt(this._oConfig.height));MdPHTML5中文学习网 - HTML5先行者学习网
if (allOnTop) {MdPHTML5中文学习网 - HTML5先行者学习网
var originalImgSize = this._backgroundImg.getOriginalSize();MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.drawImage(this._backgroundImg._oElement, 0, 0, originalImgSize.width, originalImgSize.height);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
for (var i = 0, l = this._aImages.length-1; i < l; i += 1) {MdPHTML5中文学习网 - HTML5先行者学习网
this.drawImageElement(containerCanvas, this._aImages[i],allowCorners); MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this.drawImageElement(this._oContextTop, this._aImages[this._aImages.length-1],allowCorners);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.renderTop = function() {MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.clearRect(0,0,parseInt(this._oConfig.width), parseInt(this._oConfig.height));MdPHTML5中文学习网 - HTML5先行者学习网
this.drawImageElement(this._oContextTop, this._aImages[this._aImages.length-1],true);MdPHTML5中文学习网 - HTML5先行者学习网
if (this._groupSelector != null) {MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.fillStyle = "rgba(0, 0, 200, 0.5)";MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.fillRect(MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.ex - ((this._groupSelector.left > 0) ?MdPHTML5中文学习网 - HTML5先行者学习网
0 : - this._groupSelector.left), MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.ey - ((this._groupSelector.top > 0) ? MdPHTML5中文学习网 - HTML5先行者学习网
0 : - this._groupSelector.top), MdPHTML5中文学习网 - HTML5先行者学习网
Math.abs(this._groupSelector.left), MdPHTML5中文学习网 - HTML5先行者学习网
Math.abs(this._groupSelector.top)MdPHTML5中文学习网 - HTML5先行者学习网
);MdPHTML5中文学习网 - HTML5先行者学习网
this._oContextTop.strokeRect(MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.ex - ((this._groupSelector.left > 0) ? MdPHTML5中文学习网 - HTML5先行者学习网
0 : Math.abs(this._groupSelector.left)), MdPHTML5中文学习网 - HTML5先行者学习网
this._groupSelector.ey - ((this._groupSelector.top > 0) ? MdPHTML5中文学习网 - HTML5先行者学习网
0 : Math.abs(this._groupSelector.top)), MdPHTML5中文学习网 - HTML5先行者学习网
Math.abs(this._groupSelector.left), MdPHTML5中文学习网 - HTML5先行者学习网
Math.abs(this._groupSelector.top)MdPHTML5中文学习网 - HTML5先行者学习网
);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.drawImageElement = function(context, oImg,allowCorners) {MdPHTML5中文学习网 - HTML5先行者学习网
oImg.cornervisibility=allowCorners;MdPHTML5中文学习网 - HTML5先行者学习网
var offsetY = oImg.height / 2;MdPHTML5中文学习网 - HTML5先行者学习网
var offsetX = oImg.width / 2;MdPHTML5中文学习网 - HTML5先行者学习网
context.save();MdPHTML5中文学习网 - HTML5先行者学习网
context.translate(oImg.left, oImg.top);MdPHTML5中文学习网 - HTML5先行者学习网
context.rotate(oImg.theta);MdPHTML5中文学习网 - HTML5先行者学习网
context.scale(oImg.scalex, oImg.scaley);MdPHTML5中文学习网 - HTML5先行者学习网
this.drawBorder(context, oImg, offsetX, offsetY);MdPHTML5中文学习网 - HTML5先行者学习网
var originalImgSize = oImg.getOriginalSize();MdPHTML5中文学习网 - HTML5先行者学习网
var polaroidHeight = ((oImg.height - originalImgSize.height) - (oImg.width - originalImgSize.width))/2;MdPHTML5中文学习网 - HTML5先行者学习网
context.drawImage(MdPHTML5中文学习网 - HTML5先行者学习网
oImg._oElement, MdPHTML5中文学习网 - HTML5先行者学习网
- originalImgSize.width/2, MdPHTML5中文学习网 - HTML5先行者学习网
((- originalImgSize.height)/2 - polaroidHeight), MdPHTML5中文学习网 - HTML5先行者学习网
originalImgSize.width, MdPHTML5中文学习网 - HTML5先行者学习网
originalImgSize.heightMdPHTML5中文学习网 - HTML5先行者学习网
);MdPHTML5中文学习网 - HTML5先行者学习网
if (oImg.cornervisibility) {MdPHTML5中文学习网 - HTML5先行者学习网
this.drawCorners(context, oImg, offsetX, offsetY);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
context.restore();MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._getImageLines = function(oCoords) {MdPHTML5中文学习网 - HTML5先行者学习网
return {MdPHTML5中文学习网 - HTML5先行者学习网
topline: { MdPHTML5中文学习网 - HTML5先行者学习网
o: oCoords.tl,MdPHTML5中文学习网 - HTML5先行者学习网
d: oCoords.tr MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
rightline: { MdPHTML5中文学习网 - HTML5先行者学习网
o: oCoords.tr,MdPHTML5中文学习网 - HTML5先行者学习网
d: oCoords.br MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
bottomline: { MdPHTML5中文学习网 - HTML5先行者学习网
o: oCoords.br,MdPHTML5中文学习网 - HTML5先行者学习网
d: oCoords.bl MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
leftline: { MdPHTML5中文学习网 - HTML5先行者学习网
o: oCoords.bl,MdPHTML5中文学习网 - HTML5先行者学习网
d: oCoords.tl MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.findTargetImage = function(mp, hovering) {MdPHTML5中文学习网 - HTML5先行者学习网
for (var i = this._aImages.length-1; i >= 0; i -= 1) {MdPHTML5中文学习网 - HTML5先行者学习网
var iLines = this._getImageLines(this._aImages[i].oCoords);MdPHTML5中文学习网 - HTML5先行者学习网
var xpoints = this._findCrossPoints(mp, iLines);MdPHTML5中文学习网 - HTML5先行者学习网
if (xpoints % 2 == 1 && xpoints != 0) {MdPHTML5中文学习网 - HTML5先行者学习网
var target = this._aImages[i];MdPHTML5中文学习网 - HTML5先行者学习网
if (!hovering) {MdPHTML5中文学习网 - HTML5先行者学习网
this._aImages.splice(i, 1);MdPHTML5中文学习网 - HTML5先行者学习网
this._aImages.push(target);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
return target;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
return false;MdPHTML5中文学习网 - HTML5先行者学习网
}; MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype._findCrossPoints = function(mp, oCoords) {MdPHTML5中文学习网 - HTML5先行者学习网
var b1, b2, a1, a2, xi, yi;MdPHTML5中文学习网 - HTML5先行者学习网
var xcount = 0;MdPHTML5中文学习网 - HTML5先行者学习网
var iLine = null;MdPHTML5中文学习网 - HTML5先行者学习网
for (lineKey in oCoords) {MdPHTML5中文学习网 - HTML5先行者学习网
iLine = oCoords[lineKey];MdPHTML5中文学习网 - HTML5先行者学习网
if ((iLine.o.y < mp.ey) && (iLine.d.y < mp.ey)) {MdPHTML5中文学习网 - HTML5先行者学习网
continue;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if ((iLine.o.y >= mp.ey) && (iLine.d.y >= mp.ey)) {MdPHTML5中文学习网 - HTML5先行者学习网
continue;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if ((iLine.o.x == iLine.d.x) && (iLine.o.x >= mp.ex)) { MdPHTML5中文学习网 - HTML5先行者学习网
xi = iLine.o.x;MdPHTML5中文学习网 - HTML5先行者学习网
yi = mp.ey;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
b1 = 0; MdPHTML5中文学习网 - HTML5先行者学习网
b2 = (iLine.d.y-iLine.o.y)/(iLine.d.x-iLine.o.x); MdPHTML5中文学习网 - HTML5先行者学习网
a1 = mp.ey-b1*mp.ex;MdPHTML5中文学习网 - HTML5先行者学习网
a2 = iLine.o.y-b2*iLine.o.x;MdPHTML5中文学习网 - HTML5先行者学习网
xi = - (a1-a2)/(b1-b2); MdPHTML5中文学习网 - HTML5先行者学习网
yi = a1+b1*xi; MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (xi >= mp.ex) { MdPHTML5中文学习网 - HTML5先行者学习网
xcount += 1;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (xcount == 2) {MdPHTML5中文学习网 - HTML5先行者学习网
break;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
return xcount;MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.findTargetCorner = function(mp, oImg) {MdPHTML5中文学习网 - HTML5先行者学习网
var xpoints = null;MdPHTML5中文学习网 - HTML5先行者学习网
var corners = ['tl','tr','br','bl'];MdPHTML5中文学习网 - HTML5先行者学习网
for (var i in oImg.oCoords) {MdPHTML5中文学习网 - HTML5先行者学习网
xpoints = this._findCrossPoints(mp, this._getImageLines(oImg.oCoords[i].corner));MdPHTML5中文学习网 - HTML5先行者学习网
if (xpoints % 2 == 1 && xpoints != 0) {MdPHTML5中文学习网 - HTML5先行者学习网
return i;MdPHTML5中文学习网 - HTML5先行者学习网
} MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
return false;MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.findMousePosition = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
var parentNode = (e.srcElement) ? e.srcElement.parentNode : e.target.parentNode;MdPHTML5中文学习网 - HTML5先行者学习网
var isSafari2 = !S.support.ie&&!S.support.firefox;MdPHTML5中文学习网 - HTML5先行者学习网
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;MdPHTML5中文学习网 - HTML5先行者学习网
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;MdPHTML5中文学习网 - HTML5先行者学习网
var safariOffsetLeft = (isSafari2) ? e.target.ownerDocument.body.offsetLeft + scrollLeft : 0;MdPHTML5中文学习网 - HTML5先行者学习网
var safariOffsetTop = (isSafari2) ? e.target.ownerDocument.body.offsetTop + scrollTop : 0;MdPHTML5中文学习网 - HTML5先行者学习网
return {MdPHTML5中文学习网 - HTML5先行者学习网
ex: e.clientX + scrollLeft - parentNode.offsetLeft - safariOffsetLeft,MdPHTML5中文学习网 - HTML5先行者学习网
ey: e.clientY + scrollTop - parentNode.offsetTop - safariOffsetTop,MdPHTML5中文学习网 - HTML5先行者学习网
screenX: e.screenX,MdPHTML5中文学习网 - HTML5先行者学习网
screenY: e.screenYMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.drawBorder = function(context, oImg, offsetX, offsetY) {MdPHTML5中文学习网 - HTML5先行者学习网
var outlinewidth = 2;MdPHTML5中文学习网 - HTML5先行者学习网
context.fillStyle = 'rgba(0, 0, 0, .3)';MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(-2 - offsetX, -2 - offsetY, oImg.width + (2 * outlinewidth), oImg.height + (2 * outlinewidth));MdPHTML5中文学习网 - HTML5先行者学习网
context.fillStyle = '#fff';MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(-offsetX, -offsetY, oImg.width, oImg.height);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.drawCorners = function(context, oImg, offsetX, offsetY) {MdPHTML5中文学习网 - HTML5先行者学习网
context.fillStyle = "rgba(0, 200, 50, 0.5)";MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(-offsetX, -offsetY, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(oImg.width - offsetX - oImg.cornersize, -offsetY, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(-offsetX, oImg.height - offsetY - oImg.cornersize, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.fillRect(oImg.width - offsetX - oImg.cornersize, oImg.height - offsetY - oImg.cornersize, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.clearCorners = function(context, oImg, offsetX, offsetY) {MdPHTML5中文学习网 - HTML5先行者学习网
context.clearRect(-offsetX, -offsetY, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.clearRect(oImg.width - offsetX - oImg.cornersize, -offsetY, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.clearRect(-offsetX, oImg.height - offsetY - oImg.cornersize, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.clearRect(oImg.width - offsetX - oImg.cornersize, oImg.height - offsetY - oImg.cornersize, oImg.cornersize, oImg.cornersize);MdPHTML5中文学习网 - HTML5先行者学习网
context.restore();MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Element.prototype.canvasTo = function(format) {MdPHTML5中文学习网 - HTML5先行者学习网
this.renderAll(true,false);MdPHTML5中文学习网 - HTML5先行者学习网
var containerCanvas =this._oContextTop;MdPHTML5中文学习网 - HTML5先行者学习网
for (var i = 0, l = this._aImages.length; i < l; i += 1) {MdPHTML5中文学习网 - HTML5先行者学习网
var offsetY = this._aImages[i].height / 2;MdPHTML5中文学习网 - HTML5先行者学习网
var offsetX = this._aImages[i].width / 2;MdPHTML5中文学习网 - HTML5先行者学习网
this.clearCorners(containerCanvas, this._aImages[i], offsetX, offsetY);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (format == 'jpeg' || format == 'png') {MdPHTML5中文学习网 - HTML5先行者学习网
return this._oElement.toDataURL('image/'+format);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}; MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.CustomEvent = function(type) {MdPHTML5中文学习网 - HTML5先行者学习网
this.type = type;MdPHTML5中文学习网 - HTML5先行者学习网
this.scope = null;MdPHTML5中文学习网 - HTML5先行者学习网
this.handler = null;MdPHTML5中文学习网 - HTML5先行者学习网
var self = this;MdPHTML5中文学习网 - HTML5先行者学习网
this.fire = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
if(this.handler != null) {MdPHTML5中文学习网 - HTML5先行者学习网
self.handler.call(self.scope, e);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
}; MdPHTML5中文学习网 - HTML5先行者学习网
}());MdPHTML5中文学习网 - HTML5先行者学习网
return Canvas;MdPHTML5中文学习网 - HTML5先行者学习网
});
MdPHTML5中文学习网 - HTML5先行者学习网

canvasImg.js代码如下:MdPHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
define('canvasImg', [ '../multi_upload/core' ], function(S) {MdPHTML5中文学习网 - HTML5先行者学习网
var Canvas = window.Canvas || {};MdPHTML5中文学习网 - HTML5先行者学习网
(function () {MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img = function(el, oConfig) {MdPHTML5中文学习网 - HTML5先行者学习网
this._initElement(el);MdPHTML5中文学习网 - HTML5先行者学习网
this._initConfig(oConfig);MdPHTML5中文学习网 - HTML5先行者学习网
this.setImageCoords();MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.CSS_CANVAS = "canvas-img";MdPHTML5中文学习网 - HTML5先行者学习网
var DEFAULT_CONFIG = { MdPHTML5中文学习网 - HTML5先行者学习网
"TOP": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "top", MdPHTML5中文学习网 - HTML5先行者学习网
value: 10 MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"LEFT": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "left", MdPHTML5中文学习网 - HTML5先行者学习网
value: 10MdPHTML5中文学习网 - HTML5先行者学习网
}, MdPHTML5中文学习网 - HTML5先行者学习网
"ANGLE": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "angle", MdPHTML5中文学习网 - HTML5先行者学习网
value: 0 MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"THETA": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "theta", MdPHTML5中文学习网 - HTML5先行者学习网
value: 0 MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"SCALE-X": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "scalex", MdPHTML5中文学习网 - HTML5先行者学习网
value: 1MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"SCALE-Y": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "scaley", MdPHTML5中文学习网 - HTML5先行者学习网
value: 1MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"CORNERSIZE": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "cornersize", MdPHTML5中文学习网 - HTML5先行者学习网
value:10MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"BORDERWIDTH": { MdPHTML5中文学习网 - HTML5先行者学习网
key: "borderwidth", MdPHTML5中文学习网 - HTML5先行者学习网
value: 10MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"POLAROIDHEIGHT": {MdPHTML5中文学习网 - HTML5先行者学习网
key: "polaroidheight",MdPHTML5中文学习网 - HTML5先行者学习网
value: 40MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
"RANDOMPOSITION": {MdPHTML5中文学习网 - HTML5先行者学习网
key: "randomposition",MdPHTML5中文学习网 - HTML5先行者学习网
value: trueMdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype._oElement = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.top = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.left = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.maxwidth = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.maxheight = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.oCoords = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.angle = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.theta = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.scalex = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.scaley = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.cornersize = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.polaroidheight = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.randomposition = null;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.selected = false;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.bordervisibility = false;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.cornervisibility = false;MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype._initElement = function(el) {MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement = el;MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype._initConfig = function(oConfig) {MdPHTML5中文学习网 - HTML5先行者学习网
var sKey;MdPHTML5中文学习网 - HTML5先行者学习网
for (sKey in DEFAULT_CONFIG) {MdPHTML5中文学习网 - HTML5先行者学习网
var defaultKey = DEFAULT_CONFIG[sKey].key;MdPHTML5中文学习网 - HTML5先行者学习网
if (!oConfig.hasOwnProperty(defaultKey)) { // = !(defaultKey in oConfig)MdPHTML5中文学习网 - HTML5先行者学习网
this[defaultKey] = DEFAULT_CONFIG[sKey].value;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
this[defaultKey] = oConfig[defaultKey];MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (this.bordervisibility) {MdPHTML5中文学习网 - HTML5先行者学习网
this.currentBorder = this.borderwidth;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
this.currentBorder = 0;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
var normalizedSize = this.getNormalizedSize(this._oElement, parseInt(oConfig.maxwidth), parseInt(oConfig.maxheight));MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.width = normalizedSize.width;MdPHTML5中文学习网 - HTML5先行者学习网
this._oElement.height = normalizedSize.height;MdPHTML5中文学习网 - HTML5先行者学习网
this.width = normalizedSize.width + (2 * this.currentBorder);MdPHTML5中文学习网 - HTML5先行者学习网
this.height = normalizedSize.height + (2 * this.currentBorder);MdPHTML5中文学习网 - HTML5先行者学习网
if (this.randomposition) {MdPHTML5中文学习网 - HTML5先行者学习网
this._setRandomProperties(oConfig);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
this.theta = this.angle * (Math.PI/180);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.getNormalizedSize = function(oImg, maxwidth, maxheight) {MdPHTML5中文学习网 - HTML5先行者学习网
if (maxheight && maxwidth && (oImg.width > oImg.height && (oImg.width / oImg.height) < (maxwidth / maxheight))) {MdPHTML5中文学习网 - HTML5先行者学习网
normalizedWidth = Math.floor((oImg.width * maxheight) / oImg.height);MdPHTML5中文学习网 - HTML5先行者学习网
normalizedHeight = maxheight;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if (maxheight && ((oImg.height == oImg.width) || (oImg.height > oImg.width) || (oImg.height > maxheight))) {MdPHTML5中文学习网 - HTML5先行者学习网
normalizedWidth = Math.floor((oImg.width * maxheight) / oImg.height);MdPHTML5中文学习网 - HTML5先行者学习网
normalizedHeight = maxheight;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else if (maxwidth && (maxwidth < oImg.width)){ MdPHTML5中文学习网 - HTML5先行者学习网
normalizedHeight = Math.floor((oImg.height * maxwidth) / oImg.width);MdPHTML5中文学习网 - HTML5先行者学习网
normalizedWidth = maxwidth;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
else {MdPHTML5中文学习网 - HTML5先行者学习网
normalizedWidth = oImg.width;MdPHTML5中文学习网 - HTML5先行者学习网
normalizedHeight = oImg.height; MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
return { width: normalizedWidth, height: normalizedHeight }MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.getOriginalSize = function() {MdPHTML5中文学习网 - HTML5先行者学习网
return { width: this._oElement.width, height: this._oElement.height }MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype._setRandomProperties = function(oConfig) {MdPHTML5中文学习网 - HTML5先行者学习网
if (oConfig.angle == null) {MdPHTML5中文学习网 - HTML5先行者学习网
this.angle = (Math.random() * 90);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (oConfig.top == null) {MdPHTML5中文学习网 - HTML5先行者学习网
this.top = this.height / 2 + Math.random() * 450;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
if (oConfig.left == null) {MdPHTML5中文学习网 - HTML5先行者学习网
this.left = this.width / 2 + Math.random() * 600;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.setCornersVisibility = function(visible) {MdPHTML5中文学习网 - HTML5先行者学习网
this.cornervisibility = visible;MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.setImageCoords = function() {MdPHTML5中文学习网 - HTML5先行者学习网
this.left = parseInt(this.left);MdPHTML5中文学习网 - HTML5先行者学习网
this.top = parseInt(this.top);MdPHTML5中文学习网 - HTML5先行者学习网
this.currentWidth = parseInt(this.width) * this.scalex;MdPHTML5中文学习网 - HTML5先行者学习网
this.currentHeight = parseInt(this.height) * this.scalex;MdPHTML5中文学习网 - HTML5先行者学习网
this._hypotenuse = Math.sqrt(Math.pow(this.currentWidth / 2, 2) + Math.pow(this.currentHeight / 2, 2));MdPHTML5中文学习网 - HTML5先行者学习网
this._angle = Math.atan(this.currentHeight / this.currentWidth);MdPHTML5中文学习网 - HTML5先行者学习网
var offsetX = Math.cos(this._angle + this.theta) * this._hypotenuse;MdPHTML5中文学习网 - HTML5先行者学习网
var offsetY = Math.sin(this._angle + this.theta) * this._hypotenuse;MdPHTML5中文学习网 - HTML5先行者学习网
var theta = this.theta;MdPHTML5中文学习网 - HTML5先行者学习网
var sinTh = Math.sin(theta);MdPHTML5中文学习网 - HTML5先行者学习网
var cosTh = Math.cos(theta);MdPHTML5中文学习网 - HTML5先行者学习网
var tl = {MdPHTML5中文学习网 - HTML5先行者学习网
x: this.left - offsetX,MdPHTML5中文学习网 - HTML5先行者学习网
y: this.top - offsetYMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
var tr = {MdPHTML5中文学习网 - HTML5先行者学习网
x: tl.x + (this.currentWidth * cosTh),MdPHTML5中文学习网 - HTML5先行者学习网
y: tl.y + (this.currentWidth * sinTh)MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
var br = {MdPHTML5中文学习网 - HTML5先行者学习网
x: tr.x - (this.currentHeight * sinTh),MdPHTML5中文学习网 - HTML5先行者学习网
y: tr.y + (this.currentHeight * cosTh)MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
var bl = {MdPHTML5中文学习网 - HTML5先行者学习网
x: tl.x - (this.currentHeight * sinTh),MdPHTML5中文学习网 - HTML5先行者学习网
y: tl.y + (this.currentHeight * cosTh)MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
this.oCoords = { tl: tl, tr: tr, br: br, bl: bl };MdPHTML5中文学习网 - HTML5先行者学习网
this.setCornerCoords(); MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
Canvas.Img.prototype.setCornerCoords = function() {MdPHTML5中文学习网 - HTML5先行者学习网
var coords = this.oCoords;MdPHTML5中文学习网 - HTML5先行者学习网
var theta = this.theta;MdPHTML5中文学习网 - HTML5先行者学习网
var cosOffset = this.cornersize * this.scalex * Math.cos(theta);MdPHTML5中文学习网 - HTML5先行者学习网
var sinOffset = this.cornersize * this.scalex * Math.sin(theta);MdPHTML5中文学习网 - HTML5先行者学习网
coords.tl.corner = {MdPHTML5中文学习网 - HTML5先行者学习网
tl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tl.x,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tl.yMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
tr: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tl.x + cosOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tl.y + sinOffsetMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
bl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tl.x - sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tl.y + cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
coords.tl.corner.br = {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tl.corner.tr.x - sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tl.corner.tr.y + cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
MdPHTML5中文学习网 - HTML5先行者学习网
coords.tr.corner = {MdPHTML5中文学习网 - HTML5先行者学习网
tl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tr.x - cosOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tr.y - sinOffsetMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
tr: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tr.x,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tr.yMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
br: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tr.x - sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tr.y + cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
coords.tr.corner.bl = {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.tr.corner.tl.x - sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.tr.corner.tl.y + cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
MdPHTML5中文学习网 - HTML5先行者学习网
coords.bl.corner = {MdPHTML5中文学习网 - HTML5先行者学习网
tl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.bl.x + sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.bl.y - cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
bl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.bl.x,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.bl.yMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
br: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.bl.x + cosOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.bl.y + sinOffsetMdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
coords.bl.corner.tr = {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.bl.corner.br.x + sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.bl.corner.br.y - cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
MdPHTML5中文学习网 - HTML5先行者学习网
coords.br.corner = {MdPHTML5中文学习网 - HTML5先行者学习网
tr: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.br.x + sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.br.y - cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
bl: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.br.x - cosOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.br.y - sinOffsetMdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
br: {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.br.x,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.br.yMdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
coords.br.corner.tl = {MdPHTML5中文学习网 - HTML5先行者学习网
x: coords.br.corner.bl.x + sinOffset,MdPHTML5中文学习网 - HTML5先行者学习网
y: coords.br.corner.bl.y - cosOffsetMdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
}());MdPHTML5中文学习网 - HTML5先行者学习网
return Canvas;MdPHTML5中文学习网 - HTML5先行者学习网
});
MdPHTML5中文学习网 - HTML5先行者学习网

puzzle.html代码如下:MdPHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
<!DOCTYPE html>MdPHTML5中文学习网 - HTML5先行者学习网
<html>MdPHTML5中文学习网 - HTML5先行者学习网
<head>MdPHTML5中文学习网 - HTML5先行者学习网
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">MdPHTML5中文学习网 - HTML5先行者学习网
<title>Insert title here</title>MdPHTML5中文学习网 - HTML5先行者学习网
<link type="text/css" href="html5_puzzle.css" rel="stylesheet" />MdPHTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript" src="../multi_upload/seed.js"></script>MdPHTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript" src='html5_puzzle.js'></script>MdPHTML5中文学习网 - HTML5先行者学习网
</head>MdPHTML5中文学习网 - HTML5先行者学习网
<body>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='html5_puzzle'>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='puzzle_left'>MdPHTML5中文学习网 - HTML5先行者学习网
<div class='puzzle_column'>MdPHTML5中文学习网 - HTML5先行者学习网
<ul>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/1.jpg' data-index='1' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/2.jpg' data-index='2' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/3.jpg' data-index='3' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/4.jpg' data-index='4' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/5.jpg' data-index='5' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
</ul>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
<div class='puzzle_column'>MdPHTML5中文学习网 - HTML5先行者学习网
<ul>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/6.jpg' data-index='6' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/7.jpg' data-index='7' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/8.jpg' data-index='8' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/9.jpg' data-index='9' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
<li><img src='small_img/10.jpg' data-index='10' /></li>MdPHTML5中文学习网 - HTML5先行者学习网
</ul>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='puzzle_right'>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='puzzle_canvas'>MdPHTML5中文学习网 - HTML5先行者学习网
<canvas id="canvid1"></canvas>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='canvas_menu'>MdPHTML5中文学习网 - HTML5先行者学习网
<a href='javascript:void(0)' id='photo_delete'>删除</a> <aMdPHTML5中文学习网 - HTML5先行者学习网
href='javascript:void(0)' id='photo_update'>更改图片</a>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
<img id="bg" src="big_img/1.jpg" width='600' height='450' />MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
<div id='puzzle_bottom'>MdPHTML5中文学习网 - HTML5先行者学习网
<a href='javascript:void(0)' id='add_img'><span>添加图片</span><inputMdPHTML5中文学习网 - HTML5先行者学习网
type="file" multiple="" id='fileImage'> </a> <aMdPHTML5中文学习网 - HTML5先行者学习网
href='javascript:void(0)' id='upload_btn'>上传</a> <a>点击图片可以旋转,拖拽,MdPHTML5中文学习网 - HTML5先行者学习网
缩放哦!</a>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
</div>MdPHTML5中文学习网 - HTML5先行者学习网
<input type="file" id='test'>MdPHTML5中文学习网 - HTML5先行者学习网
<canvas id='test_canvas'></canvas>MdPHTML5中文学习网 - HTML5先行者学习网
</body>MdPHTML5中文学习网 - HTML5先行者学习网
</html>
MdPHTML5中文学习网 - HTML5先行者学习网

html5_puzzle.css代码如下:MdPHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
@CHARSET "UTF-8";</p><p>#html5_puzzle {MdPHTML5中文学习网 - HTML5先行者学习网
font-size: 0;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>canvas {MdPHTML5中文学习网 - HTML5先行者学习网
background-color: transparent;MdPHTML5中文学习网 - HTML5先行者学习网
left: 0;MdPHTML5中文学习网 - HTML5先行者学习网
position: absolute;MdPHTML5中文学习网 - HTML5先行者学习网
top: 0;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>.puzzle_column,#puzzle_left,#puzzle_right,#add_img {MdPHTML5中文学习网 - HTML5先行者学习网
display: inline-block;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>.puzzle_column li {MdPHTML5中文学习网 - HTML5先行者学习网
display: block;MdPHTML5中文学习网 - HTML5先行者学习网
margin: 5px;MdPHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ffffff;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>.puzzle_column li:hover {MdPHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #3B5998;MdPHTML5中文学习网 - HTML5先行者学习网
cursor: pointer;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>.puzzle_column {MdPHTML5中文学习网 - HTML5先行者学习网
font-size: 0;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#puzzle_left,#puzzle_right {MdPHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #3B5998;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#puzzle_right,#puzzle_bottom a {MdPHTML5中文学习网 - HTML5先行者学习网
font-size: 14px;MdPHTML5中文学习网 - HTML5先行者学习网
margin: 10px 0 0 10px;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#puzzle_bottom {MdPHTML5中文学习网 - HTML5先行者学习网
margin: 5px 0;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#puzzle_canvas img {MdPHTML5中文学习网 - HTML5先行者学习网
MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#puzzle_canvas {MdPHTML5中文学习网 - HTML5先行者学习网
overflow: hidden;MdPHTML5中文学习网 - HTML5先行者学习网
width: 600px;MdPHTML5中文学习网 - HTML5先行者学习网
height: 450px;MdPHTML5中文学习网 - HTML5先行者学习网
position: relative;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#add_img input {MdPHTML5中文学习网 - HTML5先行者学习网
position: absolute;MdPHTML5中文学习网 - HTML5先行者学习网
font-size: 100px;MdPHTML5中文学习网 - HTML5先行者学习网
right: 0;MdPHTML5中文学习网 - HTML5先行者学习网
top: 0;MdPHTML5中文学习网 - HTML5先行者学习网
opacity: 0;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#add_img {MdPHTML5中文学习网 - HTML5先行者学习网
position: relative;MdPHTML5中文学习网 - HTML5先行者学习网
display: inline-block;MdPHTML5中文学习网 - HTML5先行者学习网
background: #3B5998;MdPHTML5中文学习网 - HTML5先行者学习网
border-radius: 4px;MdPHTML5中文学习网 - HTML5先行者学习网
padding: 4px 12px;MdPHTML5中文学习网 - HTML5先行者学习网
overflow: hidden;MdPHTML5中文学习网 - HTML5先行者学习网
color: #ffffff;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#bg,#show_list {MdPHTML5中文学习网 - HTML5先行者学习网
display: none;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#canvas_menu {MdPHTML5中文学习网 - HTML5先行者学习网
border: 1px solid red;MdPHTML5中文学习网 - HTML5先行者学习网
position: absolute;MdPHTML5中文学习网 - HTML5先行者学习网
z-index: 5;MdPHTML5中文学习网 - HTML5先行者学习网
top: 0;MdPHTML5中文学习网 - HTML5先行者学习网
left: 0;MdPHTML5中文学习网 - HTML5先行者学习网
display: none;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#canvas_menu a {MdPHTML5中文学习网 - HTML5先行者学习网
display: inline-block;MdPHTML5中文学习网 - HTML5先行者学习网
}</p><p>#test_canvas {MdPHTML5中文学习网 - HTML5先行者学习网
top: 700px;MdPHTML5中文学习网 - HTML5先行者学习网
}
MdPHTML5中文学习网 - HTML5先行者学习网

html5_puzzle.js代码如下:MdPHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
require([ 'img_upload', '../puzzle/canvasImg', '../puzzle/canvasElement' ], function(MdPHTML5中文学习网 - HTML5先行者学习网
S, canvasImg, canvasElement) {MdPHTML5中文学习网 - HTML5先行者学习网
var img=[];MdPHTML5中文学习网 - HTML5先行者学习网
var canvas = new canvasElement.Element();MdPHTML5中文学习网 - HTML5先行者学习网
canvas.init('canvid1', {MdPHTML5中文学习网 - HTML5先行者学习网
width : 600,MdPHTML5中文学习网 - HTML5先行者学习网
height : 450MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S('.puzzle_column img').on('click',function(e){MdPHTML5中文学习网 - HTML5先行者学习网
var index=this.getAttribute('data-index');MdPHTML5中文学习网 - HTML5先行者学习网
$('bg').onload = function() {MdPHTML5中文学习网 - HTML5先行者学习网
var ctx=$('canvid1-canvas-background').getContext('2d');MdPHTML5中文学习网 - HTML5先行者学习网
ctx.clearRect(0, 0,600,450);MdPHTML5中文学习网 - HTML5先行者学习网
img[0]=new canvasImg.Img($('bg'), {});MdPHTML5中文学习网 - HTML5先行者学习网
canvas.setCanvasBackground(img[0]);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
$('bg').setAttribute('src','medium_img/'+index+'.jpg');MdPHTML5中文学习网 - HTML5先行者学习网
e.stopPropagation();MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
var CanvasDemo = function() {MdPHTML5中文学习网 - HTML5先行者学习网
return {MdPHTML5中文学习网 - HTML5先行者学习网
init : function() {MdPHTML5中文学习网 - HTML5先行者学习网
var img_list=dom.query('#puzzle_canvas img');MdPHTML5中文学习网 - HTML5先行者学习网
img[0]=new canvasImg.Img($('bg'), {});MdPHTML5中文学习网 - HTML5先行者学习网
S.each(img_list,function(i,el){MdPHTML5中文学习网 - HTML5先行者学习网
el.setAttribute('data-index',i);MdPHTML5中文学习网 - HTML5先行者学习网
img.push(new canvasImg.Img(el, {}));MdPHTML5中文学习网 - HTML5先行者学习网
canvas.addImage(img[i+1]);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
canvas.setCanvasBackground(img[0]);MdPHTML5中文学习网 - HTML5先行者学习网
this.cornersvisible = (this.cornersvisible) ? false : true;MdPHTML5中文学习网 - HTML5先行者学习网
this.modifyImages(function(image) {MdPHTML5中文学习网 - HTML5先行者学习网
image.setCornersVisibility(this.cornersvisible);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
modifyImages : function(fn) {MdPHTML5中文学习网 - HTML5先行者学习网
for ( var i =0, l = canvas._aImages.length; i < l; i += 1) {MdPHTML5中文学习网 - HTML5先行者学习网
fn.call(this, canvas._aImages[i]);MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
canvas.renderAll(false,false);MdPHTML5中文学习网 - HTML5先行者学习网
S('#puzzle_canvas img').remove();MdPHTML5中文学习网 - HTML5先行者学习网
img = [];MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
}();MdPHTML5中文学习网 - HTML5先行者学习网
function getCurImg(){MdPHTML5中文学习网 - HTML5先行者学习网
var oImg=canvas._prevTransform.target;MdPHTML5中文学习网 - HTML5先行者学习网
for(var i=0;i<canvas._aImages.length;i++){MdPHTML5中文学习网 - HTML5先行者学习网
if(canvas._aImages[i]._oElement.src==oImg._oElement.src){MdPHTML5中文学习网 - HTML5先行者学习网
return i;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
S('#photo_delete').on('click',function(e){MdPHTML5中文学习网 - HTML5先行者学习网
var i=getCurImg();MdPHTML5中文学习网 - HTML5先行者学习网
canvas._aImages.splice(i,1);MdPHTML5中文学习网 - HTML5先行者学习网
canvas.renderAll(true,true);MdPHTML5中文学习网 - HTML5先行者学习网
$('canvas_menu').style.display="none";MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S('#photo_update').on('click',function(e){MdPHTML5中文学习网 - HTML5先行者学习网
$('test').click();MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S('#test').on('change',function(e){MdPHTML5中文学习网 - HTML5先行者学习网
var files = e.target.files || e.dataTransfer.files;MdPHTML5中文学习网 - HTML5先行者学习网
var reader = new FileReader();MdPHTML5中文学习网 - HTML5先行者学习网
reader.onload = (function() {MdPHTML5中文学习网 - HTML5先行者学习网
return function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
var dataURL = e.target.result, canvas1 = document.querySelector('#test_canvas'), ctx = canvas1.getContext('2d'), img = new Image();MdPHTML5中文学习网 - HTML5先行者学习网
img.onload = function(e) {MdPHTML5中文学习网 - HTML5先行者学习网
if(img.width>200||img.height>200){MdPHTML5中文学习网 - HTML5先行者学习网
var prop=Math.min(200/img.width,200/img.height);MdPHTML5中文学习网 - HTML5先行者学习网
img.width=img.width*prop;MdPHTML5中文学习网 - HTML5先行者学习网
img.height=img.height*prop;MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
canvas1.width=img.width;MdPHTML5中文学习网 - HTML5先行者学习网
canvas1.height=img.height;MdPHTML5中文学习网 - HTML5先行者学习网
ctx.drawImage(img, 0, 0, img.width, img.height);MdPHTML5中文学习网 - HTML5先行者学习网
S('#canvid1').html(S('#canvid1').html()+"<img src='"+canvas1.toDataURL("image/jpeg")+"'/>");MdPHTML5中文学习网 - HTML5先行者学习网
var t = window.setTimeout(function() {MdPHTML5中文学习网 - HTML5先行者学习网
var i=getCurImg(),target=canvas._prevTransform.target;MdPHTML5中文学习网 - HTML5先行者学习网
console.log(target);MdPHTML5中文学习网 - HTML5先行者学习网
canvas._aImages[i]=new canvasImg.Img(dom.query('#canvid1 img')[0], {MdPHTML5中文学习网 - HTML5先行者学习网
top:target.top,MdPHTML5中文学习网 - HTML5先行者学习网
left:target.left,MdPHTML5中文学习网 - HTML5先行者学习网
scalex:target.scalex,MdPHTML5中文学习网 - HTML5先行者学习网
scaley:target.scaley,MdPHTML5中文学习网 - HTML5先行者学习网
angle:canvas.curAngleMdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
canvas.renderTop();MdPHTML5中文学习网 - HTML5先行者学习网
clearTimeout(t);MdPHTML5中文学习网 - HTML5先行者学习网
S('#canvid1 img').remove();MdPHTML5中文学习网 - HTML5先行者学习网
},1000);MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
img.src = dataURL;MdPHTML5中文学习网 - HTML5先行者学习网
};MdPHTML5中文学习网 - HTML5先行者学习网
})();MdPHTML5中文学习网 - HTML5先行者学习网
reader.readAsDataURL(files[0]);MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
S('#upload_btn').on('click',function(){MdPHTML5中文学习网 - HTML5先行者学习网
var imgData = canvas.canvasTo('jpeg');MdPHTML5中文学习网 - HTML5先行者学习网
var imgValue = imgData.substr(22);MdPHTML5中文学习网 - HTML5先行者学习网
S.ajax({MdPHTML5中文学习网 - HTML5先行者学习网
url : 'http://localhost/html5/upload1.php',MdPHTML5中文学习网 - HTML5先行者学习网
type : 'POST',MdPHTML5中文学习网 - HTML5先行者学习网
data : {MdPHTML5中文学习网 - HTML5先行者学习网
imgData : imgValue,MdPHTML5中文学习网 - HTML5先行者学习网
file_name :'mix_img.jpeg'MdPHTML5中文学习网 - HTML5先行者学习网
},MdPHTML5中文学习网 - HTML5先行者学习网
dataType : 'text',MdPHTML5中文学习网 - HTML5先行者学习网
success : function(data) {MdPHTML5中文学习网 - HTML5先行者学习网
alert("s");MdPHTML5中文学习网 - HTML5先行者学习网
}MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
});MdPHTML5中文学习网 - HTML5先行者学习网
});
MdPHTML5中文学习网 - HTML5先行者学习网

至于用html5 input读取图片,这很简单就不贴出来了。MdPHTML5中文学习网 - HTML5先行者学习网

希望本文所述对大家的HTML5程序设计有所帮助。MdPHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助