Jan 09

Args !

Die Thickbox Library als solches ist ganz nett. Mit Hilfe des Frameworks, welches auf jquery aufsetzt, kann man wunderbare Layer-PopUps basteln (Ja, die braucht man auch schonmal ausserhalb der Werbebanner-Welt). Das Ding ist ziemlich ausgereift, und beisst sich auch nicht mit meinem CGI::Ajax Modul. Einzig der Superbrowser aus Redmond in der Version 6 (InternetEplorer 6 / IE6) macht, wie könnte es anders sein, Probleme !

Das Handling von Seitenbreite und Seitenhöhe dieser Browserwurst kommt nämlich bei dynamisch nachgeladenen Bildchen durcheinander. Soll heissen: Ist die Seite nach dem Laden eines img’s Breiter als vorher, dann behält der Internet Exploder 6 stur die alte Seitenbreite. Da nun Thickbox die PopUps aber immer mittig platzieren will (Mitte = Seitenbreite / 2) passt hier nun garnichts mehr.

Wenn man in der Thickbox.js die Funktion tb_position durch folgendes, mühsam erarbeitetes, Stückchen Kot ersetzt, dann klappts auch mit dem Internet Exploiter…


function tb_position() {
var scrolledX = $(document).scrollLeft()
if ( !(jQuery.browser.msie6)) { // take away IE6
$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
$("#TB_window").css({marginLeft: '-' + parseInt(( (TB_WIDTH) / 2),10) + 'px', width: TB_WIDTH + 'px'});
} else { // Krankheit aus Redmond !!! Friss dieses:
$("#TB_window").css({marginLeft: parseInt(( (-1)*(TB_WIDTH) / 2)+scrolledX,10) + 'px', width: TB_WIDTH + 'px'});
}
}

Tagged with:
preload preload preload