function verklein(image, maxWidth) {
if (image.width > maxWidth) {
image.width = maxWidth;
}
}
function verklein(image, maxWidth){
if(image.width > maxWidth){
image.width = maxWidth;
}
}
Dat werkt, als een foto nu breder is dan maxWidth gaat ie kleiner gemaakt worden. Maar stel nu: het is een hoge foto (en een zeer lage breedte), dan is je pagina ook messed up. Dus dacht ik: maak er zoiets van
function verklein(image, maxWidth) {
if (image.width > maxWidth) {
image.width = maxWidth;
}
else if (image.height > maxWidth) {
image.height = maxWidth;
}
else if (image.width = image.height AND image.width > maxWidth) {
image.width = maxWidth;
}
}
function verklein(image, maxWidth){
if(image.width > maxWidth){
image.width = maxWidth;
}
elseif(image.height > maxWidth){
image.height = maxWidth;
}
elseif(image.width = image.height AND image.width > maxWidth){
image.width = maxWidth;
}
}
Maar dan werkt het ineens niet meer, een foto die hoger is dan breder mag nog steeds tot aan de maxWidt gaan, terwijl die normaal maar maxWidth hoog mag zijn...
De hoogte heeft verder niets met de breedte te maken (in die zin dat de oorspronkelijke hoogte en breedte niet van elkaar afhangen), dus je moet dit niet doen met een elseif-statement, maar met aparte if-statements.
Als je de foto's op schaal wilt houden (de verhouding hoogte:breedte in stand wilt houden) moet je met schalen gaan werken. Je kijkt dan eerst naar de hoogte, en controleert of deze een bepaalde waarde overschrijdt, zoja, resize hoogte en breedte met schaal <hoogte van het plaatje> / <max hoogte van het plaatje> en controleer hierna de breedte van het plaatje op dezelfde manier (want het kan best zijn dat de (geschaalde) breedte de maximumbreedte nog steeds overschrijdt.
@Fréderic: vreemd - vul je dan verder geen height in ofzo ?
@Lightblade: dat kan natuurlijk ook, maar ik vraag me af of dat de schaal van het plaatje in tact laat - als ik op de reactie van Fréderic af zou moeten gaan zou ik zeggen dat jouw code voldoende is om het te laten werken
function verklein(img, maxWidth, maxHeight) {
// controleer hoogte
if(img.height > maxHeight) {
var schaal = img.height / maxHeight;
img.height = maxHeight;
img.width = Math.round(img.width / schaal);
}
// controleer breedte
// hier wordt dus ook gekeken of het plaatje na
// verkleining in de hoogte (en breedte) nog te breed is
// zodat de uiteindelijke hoogte en breedte binnen respectievelijk
// maxHeight en maxWidth vallen
if(img.width > maxWidth) {
var schaal = img.width / maxWidth;
img.width = maxWidth;
img.height = Math.round(img.height / schaal);
}
}