Just for reference, in o-three, I used this approach to get z-indexing working on IE:
It’s hackish I know, but it got the job done and z-indexing was okay.
Basically, the z-translation of the matrix is copied directly to the z-index style property, whenever the z-translation is changed.
/**
* In case of Internet Explorer and Firefox, make sure the z-Index is
* explicitely set so that all z-indexing is performed correctly.
*/
if (browser.msie || browser.firefox) {
var oldCommit = ElementOutput.prototype.commit;
ElementOutput.prototype.commit = function(context) {
oldCommit.call(this, context);
if (this._element) {
if (parseInt(this._element.style.zIndex) !== this._matrix[14]) {
//console.log(JSON.stringify(this._element.style.zIndex) + ' <> ' + JSON.stringify(this._matrix[14]));
this._element.style.zIndex = this._matrix[14];
}
}
};
}