Witam
Mam taką funkcję:
initImg = function(image){
var img = new Image();
img.onload = function() {
var obj = new Object();
//var propSzer = 'szer';
//var propWys = 'wys';
//var propTop = 'top';
//var propLeft = 'left';
//var propSrc = 'src';
if( this.width > this.height ) {
obj[propSzer] = galery_w;
obj[propWys] = obj[propSzer] / this.width * this.height;
obj[propTop] = ( galery_h - obj[propWys] ) / 2;
obj[propLeft] = 0;
}
else {
obj[propWys] = galery_h;
obj[propSzer] = obj[propWys] / this.height * this.width;
obj[propTop] = 0;
obj[propLeft] = ( galery_w - obj[propSzer] ) / 2;
}
};
img.src = image;
obj[propSrc] = image;
return obj;
}
dalej muszę wykonać coś takiego:
var image = wymiary(zm3);
$("#galery").append("
<img src='"+image.src+"' alt='' />");
$("#galery img").delay(1000).animate({ 'top': image.top, 'left': image.left, 'width': image.wys, 'height': image.szer}, time3 )
Kombinowałem pół dnia, ale nic nie działa. Wartości objektu obj nie są widoczne poza funkcją onload (słusznie zresztą). Szukam podpowiedzi jak z funkcji onload przenieść wygenerowane wartości tak by były widoczne w funkcji initImg, a na koniec widoczne w miejscu gdzie muszę podać je jako wartości w .animate();
Próbowałem dodać własności do obiektu typu Image
img.onload = function() {
//var propSzer = 'szer';
//var propWys = 'wys';
//var propTop = 'top';
//var propLeft = 'left';
//var propSrc = 'src';
if( this.width > this.height ) {
this[propSzer] = galery_w;
this[propWys] = this[propSzer] / this.width * this.height;
this[propTop] = ( galery_h - this[propWys] ) / 2;
this[propLeft] = 0;
}
else {
this[propWys] = galery_h;
this[propSzer] = this[propWys] / this.height * this.width;
this[propTop] = 0;
this[propLeft] = ( galery_w - this[propSzer] ) / 2;
}
};
Ale nie przyniosło to zamierzonych efektów. Czy obiekt typu Image można w ogóle rozbudować?
Obawiam się, że to co stworzyłem to w ogóle jakieś głupoty, więc liczę na jakąś podpowiedź i objaśnienia. Z góry dziękuję.