refactoring

This commit is contained in:
Niklas von Hertzen 2012-12-29 21:06:40 +02:00
parent c3e9636e4f
commit c72a02bf64
2 changed files with 217 additions and 245 deletions

View File

@ -146,21 +146,9 @@ _html2canvas.Util.getCSS = function (el, attribute) {
}
}
}
}
return val;
//return $(el).css(attribute);
};
@ -182,32 +170,24 @@ _html2canvas.Util.BackgroundPosition = function ( el, bounds, image ) {
bgposition[1] = val;
}
if (bgposition[0].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[0])/100);
left = ((bounds.width * percentage)-(image.width*percentage));
}else{
} else {
left = parseInt(bgposition[0],10);
}
if (bgposition[1].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[1])/100);
topPos = ((bounds.height * percentage)-(image.height*percentage));
}else{
} else {
topPos = parseInt(bgposition[1],10);
}
return {
top: topPos,
left: left
};
};
_html2canvas.Util.Extend = function (options, defaults) {

View File

@ -1,58 +1,49 @@
_html2canvas.Renderer = function(parseQueue, options){
var queue = [], renderer;
function sortZ(zStack){
function createRenderQueue(parseQueue) {
var queue = [];
var sortZ = function(zStack){
var subStacks = [],
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];
stackValues = [];
zStack.children.forEach(function(stackChild) {
if (stackChild.children && stackChild.children.length > 0){
subStacks.push(stackChild);
stackValues.push(stackChild.zindex);
}else{
} else {
queue.push(stackChild);
}
}
});
stackValues.sort(function(a, b) {
return a - b;
});
for (i = 0, stackLen = stackValues.length; i < stackLen; i+=1){
zValue = stackValues[i];
for (b = 0, subStackLen = subStacks.length; b <= subStackLen; b+=1){
stackValues.forEach(function(zValue) {
var index;
if (subStacks[b].zindex === zValue){
stackChild = subStacks.splice(b, 1);
sortZ(stackChild[0]);
break;
subStacks.some(function(stack, i){
index = i;
return (stack.zindex === zValue);
});
sortZ(subStacks.splice(index, 1)[0]);
}
}
}
}
});
};
sortZ(parseQueue.zIndex);
if (typeof options.renderer === "string" && _html2canvas.Renderer[options.renderer] !== undefined) {
renderer = _html2canvas.Renderer[options.renderer](options);
} else if (typeof options.renderer === "function") {
renderer = options.renderer(options);
return queue;
}
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 {
throw new Error("Unknown renderer");
}
@ -60,7 +51,8 @@ _html2canvas.Renderer = function(parseQueue, options){
if ( typeof renderer._create !== "function" ) {
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);
};