// Creates a <div> element, appends it to the document body and // removes the created element during test cleanup. function createDiv(test, doc) { return createElement(test, 'div', doc);
}
// Creates an element with the given |tagName|, appends it to the document body // and removes the created element during test cleanup. // If |tagName| is null or undefined, creates a <div> element. function createElement(test, tagName, doc) { if (!doc) {
doc = document;
} var element = doc.createElement(tagName || 'div');
doc.body.appendChild(element);
test.add_cleanup(function() {
element.remove();
}); return element;
}
// Convert px unit value to a Number function pxToNum(str) { return Number(String(str).match(/^(-?[\d.]+)px$/)[1]);
}
// Cubic bezier with control points (0, 0), (x1, y1), (x2, y2), and (1, 1). function cubicBezier(x1, y1, x2, y2) { function xForT(t) { var omt = 1-t; return 3 * omt * omt * t * x1 + 3 * omt * t * t * x2 + t * t * t;
}
function yForT(t) { var omt = 1-t; return 3 * omt * omt * t * y1 + 3 * omt * t * t * y2 + t * t * t;
}
function tForX(x) { // Binary subdivision. var mint = 0, maxt = 1; for (var i = 0; i < 30; ++i) { var guesst = (mint + maxt) / 2; var guessx = xForT(guesst); if (x < guessx) {
maxt = guesst;
} else {
mint = guesst;
}
} return (mint + maxt) / 2;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.