Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dopasowanie obrazu do popup
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
mokry
kiedys na jakiejs stronce widzialem okienko popup dopasowujace sie do rozmiarow obrazu...
oczywiscie zapomnialem adresu i stap pytanie:
czy ktos sie z tym spotkal i jesli tak to gdzie/jaki kod?

na pewno bylo to w js bo jeszcze zagladalem do zrodel.
niestety moj organiczny RAM ni prcuje czase na najwyzszej czestotliwosci... :/
wipo
Najpierw sprawdzasz wielkość obrazka w php to getimagesize()
Następnie w body onload="window.resizeTo(x,y); ewentualnie window.moveTo(x,y)"
mokry
Nie ma możliwości zczytania rozmiarów obrazu przez samo JS?
W php nie mam żadnego problemu zrobić coś takiego... Ale widziałem rozwiązanie i wydawało mi się że było w samym JS...

Poprzeglądam jeszcze biblioteki lightbox'a... On nie korzysta z php, a ładnie dopasowuje się do zdjęcia...

Kod
    resizeImageContainer: function( imgWidth, imgHeight) {

        // get current height and width
        this.wCur = Element.getWidth('outerImageContainer');
        this.hCur = Element.getHeight('outerImageContainer');

        // scalars based on change from old to new
        this.xScale = ((imgWidth  + (borderSize * 2)) / this.wCur) * 100;
        this.yScale = ((imgHeight  + (borderSize * 2)) / this.hCur) * 100;

        // calculate size difference between new and old image, and resize if necessary
        wDiff = (this.wCur - borderSize * 2) - imgWidth;
        hDiff = (this.hCur - borderSize * 2) - imgHeight;

        if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); }
        if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); }

        // if new and old image are same size and no scaling transition is necessary,
        // do a quick pause to prevent image flicker.
        if((hDiff == 0) && (wDiff == 0)){
            if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);}
        }

        Element.setHeight('prevLink', imgHeight);
        Element.setHeight('nextLink', imgHeight);
        Element.setWidth( 'imageDataContainer', imgWidth + (borderSize * 2));

        this.showImage();
    },


EDIT:
Z lightbox'a wyciągnąłem taki oto kod powyżej... Myśle że tutaj coś jest, ale nie jestem pewien.
Na JS niestety nie znam się poza funkcją writeln winksmiley.jpg
...?
wipo
A jak znasz chociaż podstawy języka angielskiego to bez problemu zauważysz gdzie co jest (bo jest to opisane)
lopik
Cytat
Nie ma możliwości zczytania rozmiarów obrazu przez samo JS?

Jest.

Kod
img = new Image()
img.src = 'obrazek.jpg';
w = img.width;
h = img.height;

window.open(src, 'Image', 'width='+w+' , height='+h+'');
mokry
@wipo: Podstawy eng znam, ale niekoniecznie muszę się biegle lub nawet w podstawach poruszać po JS... Żeby wiedzieć co odpowiada za rozmiary i jakoś wszystko ze sobą posklejać już trzeba mieć trochę pojęcia o JS. Poza tym mój eng opiera się głównie o business english.

@lopik, wielkie dzięki winksmiley.jpg właśnie o czymś takim mówiłem... i też była tam możliwość dodania wymiarów dla "atrybutów" okna.
hugo_amv
Cytat(lopik @ 14.01.2007, 11:25:29 ) *
Jest.

Kod
img = new Image()
img.src = 'obrazek.jpg';
w = img.width;
h = img.height;

window.open(src, 'Image', 'width='+w+' , height='+h+'');

Głupia sprawa ale możecie mi powiedzieć dlaczego w IE nie zwraca mi width i heigh, pod FF chodzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.