Javascript image resize
Ik heb een klein probleem met een javascript automatische image resizer.
http://www.kartfanatics.nl/data/nieuws/469
Mijn javascriptje: (Komt uit een forum)
function SMR_resize(obj) {
thisWidth = obj.width;
thisHeight = obj.height;
if(thisWidth > thisHeight) thisMaxDim = thisWidth;
else thisMaxDim = thisHeight;
if(thisMaxDim > SMR_confMaxDim) {
thisMinDim = Math.round((((thisWidth > thisHeight)?thisHeight:thisWidth) * SMR_confMaxDim) / thisMaxDim);
if(thisWidth > thisHeight) {
thisWidth = SMR_confMaxDim;
thisHeight = thisMinDim;
} else {
thisHeight = SMR_confMaxDim;
thisWidth = thisMinDim;
}
} // if(thisMaxDim > SMR_confMaxDim)
obj.height = thisHeight;
obj.width = thisWidth;
}
function SMR_setLink(obj) {
thisInnerHtml = obj.innerHTML;
tmpArray = thisInnerHtml.split(' src=\"');
tmpArray = tmpArray[1].split('"');
obj.href = tmpArray[0];
}
In Internet Explorer resized hij het plaatje wel, al levert het de eerste x laden wel problemen op. Het menu aan de linker kant staat dan opeens in het midden. In Firefox resized hij het plaatje niet, plaatje overlapt dan gewoon de rechterbalk.
Het plaatje wordt dus niet fysiek verkleind. Je browser geeft het op een andere grootte weer, maar browsers zijn uiterst slordig met verkleind en vergroot weergeven van plaatjes.
Je kunt beter een resize script in PHP maken/zoeken.
Dat weet ik Jan. Echter gaat dit om plaatjes die worden toegevoegd d.m.v. een UBB script. Dit kunnen dus externe plaatjes zijn. Om de lay-out niet te verpesten moeten die, mits te groot, verkleind worden. Echter heb ik daar continu problemen mee, misschien ook vanwege de CSS opbouw van mijn site aangezien dikwijls de linker navigatie balk met te grote plaatjes (in Iexplore) verplaatst naar het midden.
// Plaatjes
$string = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img src=\"\\1\\2\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('\\1\\2', '_blank'); return false; }\" alt=\"\" />",$string);
$string = preg_replace("#\[img\](.+?)\[/img\]#is","<img src=\"http://\\1\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('http://\\1', '_blank'); return false; }\" alt=\"\" />",$string);
Dit werkt goed... maar nog niet helemaal. In Internet Explorer als ik voor het eerst een pagina met een te groot plaatje open wordt dat plaatje wel verkleind maar de linker navigatie komt weer in het midden te staan.
Iemand die me kan wijzen op het probleem!?
Begin dus aardig gek te worden nu :(