mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
refactoring
This commit is contained in:
parent
c3e9636e4f
commit
c72a02bf64
20
src/Core.js
20
src/Core.js
@ -146,21 +146,9 @@ _html2canvas.Util.getCSS = function (el, attribute) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//return $(el).css(attribute);
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -182,32 +170,24 @@ _html2canvas.Util.BackgroundPosition = function ( el, bounds, image ) {
|
|||||||
bgposition[1] = val;
|
bgposition[1] = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (bgposition[0].toString().indexOf("%") !== -1){
|
if (bgposition[0].toString().indexOf("%") !== -1){
|
||||||
percentage = (parseFloat(bgposition[0])/100);
|
percentage = (parseFloat(bgposition[0])/100);
|
||||||
left = ((bounds.width * percentage)-(image.width*percentage));
|
left = ((bounds.width * percentage)-(image.width*percentage));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
left = parseInt(bgposition[0],10);
|
left = parseInt(bgposition[0],10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bgposition[1].toString().indexOf("%") !== -1){
|
if (bgposition[1].toString().indexOf("%") !== -1){
|
||||||
|
|
||||||
percentage = (parseFloat(bgposition[1])/100);
|
percentage = (parseFloat(bgposition[1])/100);
|
||||||
topPos = ((bounds.height * percentage)-(image.height*percentage));
|
topPos = ((bounds.height * percentage)-(image.height*percentage));
|
||||||
} else {
|
} else {
|
||||||
topPos = parseInt(bgposition[1],10);
|
topPos = parseInt(bgposition[1],10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
top: topPos,
|
top: topPos,
|
||||||
left: left
|
left: left
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_html2canvas.Util.Extend = function (options, defaults) {
|
_html2canvas.Util.Extend = function (options, defaults) {
|
||||||
|
@ -1,58 +1,49 @@
|
|||||||
_html2canvas.Renderer = function(parseQueue, options){
|
_html2canvas.Renderer = function(parseQueue, options){
|
||||||
var queue = [], renderer;
|
|
||||||
|
|
||||||
function sortZ(zStack){
|
function createRenderQueue(parseQueue) {
|
||||||
|
var queue = [];
|
||||||
|
|
||||||
|
var sortZ = function(zStack){
|
||||||
var subStacks = [],
|
var subStacks = [],
|
||||||
stackValues = [],
|
stackValues = [];
|
||||||
zStackChildren = zStack.children,
|
|
||||||
s,
|
|
||||||
i,
|
|
||||||
stackLen,
|
|
||||||
zValue,
|
|
||||||
zLen,
|
|
||||||
stackChild,
|
|
||||||
b,
|
|
||||||
subStackLen;
|
|
||||||
|
|
||||||
|
|
||||||
for (s = 0, zLen = zStackChildren.length; s < zLen; s+=1){
|
|
||||||
|
|
||||||
stackChild = zStackChildren[s];
|
|
||||||
|
|
||||||
|
zStack.children.forEach(function(stackChild) {
|
||||||
if (stackChild.children && stackChild.children.length > 0){
|
if (stackChild.children && stackChild.children.length > 0){
|
||||||
subStacks.push(stackChild);
|
subStacks.push(stackChild);
|
||||||
stackValues.push(stackChild.zindex);
|
stackValues.push(stackChild.zindex);
|
||||||
} else {
|
} else {
|
||||||
queue.push(stackChild);
|
queue.push(stackChild);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
|
||||||
|
|
||||||
stackValues.sort(function(a, b) {
|
stackValues.sort(function(a, b) {
|
||||||
return a - b;
|
return a - b;
|
||||||
});
|
});
|
||||||
|
|
||||||
for (i = 0, stackLen = stackValues.length; i < stackLen; i+=1){
|
stackValues.forEach(function(zValue) {
|
||||||
zValue = stackValues[i];
|
var index;
|
||||||
for (b = 0, subStackLen = subStacks.length; b <= subStackLen; b+=1){
|
|
||||||
|
|
||||||
if (subStacks[b].zindex === zValue){
|
subStacks.some(function(stack, i){
|
||||||
stackChild = subStacks.splice(b, 1);
|
index = i;
|
||||||
sortZ(stackChild[0]);
|
return (stack.zindex === zValue);
|
||||||
break;
|
});
|
||||||
|
sortZ(subStacks.splice(index, 1)[0]);
|
||||||
|
|
||||||
}
|
});
|
||||||
}
|
};
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sortZ(parseQueue.zIndex);
|
sortZ(parseQueue.zIndex);
|
||||||
|
|
||||||
if (typeof options.renderer === "string" && _html2canvas.Renderer[options.renderer] !== undefined) {
|
return queue;
|
||||||
renderer = _html2canvas.Renderer[options.renderer](options);
|
}
|
||||||
} else if (typeof options.renderer === "function") {
|
|
||||||
renderer = options.renderer(options);
|
function getRenderer(rendererName) {
|
||||||
|
var renderer;
|
||||||
|
|
||||||
|
if (typeof options.renderer === "string" && _html2canvas.Renderer[rendererName] !== undefined) {
|
||||||
|
renderer = _html2canvas.Renderer[rendererName](options);
|
||||||
|
} else if (typeof rendererName === "function") {
|
||||||
|
renderer = rendererName(options);
|
||||||
} else {
|
} else {
|
||||||
throw new Error("Unknown renderer");
|
throw new Error("Unknown renderer");
|
||||||
}
|
}
|
||||||
@ -60,7 +51,8 @@ _html2canvas.Renderer = function(parseQueue, options){
|
|||||||
if ( typeof renderer._create !== "function" ) {
|
if ( typeof renderer._create !== "function" ) {
|
||||||
throw new Error("Invalid renderer defined");
|
throw new Error("Invalid renderer defined");
|
||||||
}
|
}
|
||||||
|
return renderer;
|
||||||
|
}
|
||||||
|
|
||||||
return renderer._create( parseQueue, options, document, queue, _html2canvas );
|
return getRenderer(options.renderer)._create(parseQueue, options, document, createRenderQueue(parseQueue), _html2canvas);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user