WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   "bild nicht gefunden"- bild ausblenden... ?? (http://www.wcm.at/forum/showthread.php?t=147391)

JackLemon 13.10.2004 13:35

"bild nicht gefunden"- bild ausblenden... ??
 
hallo,

ich würde gern eine html-seite machen, in der eine matrix aus thumbnails dargestellt wird (zb 3 zeilen x 5 spalten = 15 bilder).
weil die anzahl der tatsächlich verfügbaren thumbnails aber variiert (mal sind zb nur 10 bilder im verzeichnis, dann bleiben in der matrix halt 5 bilder 'leer'), die html-datei aber statisch sein sollte (weil offline in verwendung) würd ich gern einfach die typischen "bild nicht gefunden"-bilder ausblenden.
ich denke mir dass das entweder mit css oder mit einem javascript gehen müsste -- hab nur leider keine vorstellung wie genau.
irgend jemand eine ahnung?

danke!

-jl

JackLemon 14.10.2004 02:21

hab's schon geschafft -- javascript...

Schappenberg 14.10.2004 07:52

könntest du bitte posten wie du's gemacht hast?

JackLemon 14.10.2004 12:40

mit einer lösung, die für mich gut passt, die man aber wahrscheinlich bei weiterer verwendung noch ein bisschen anpassen muss... was ich anzeige sind alles foto-scans, die haben immer das format 9x13 (oder 10x15 oder so), ich zeige sie hochformat an.
wenn ich bei allen fotos nur die breite definiere, dann berechnet der IE die höhe entsprechend proportional wenn das foto vorhanden ist. ein 20 pixel breites foto wird ca. 30 pixel hoch.
wenn das foto nicht vorhanden ist dann kommt so ein "bild nicht gefunden"-bild, das hat bei einer breite von 20 pixeln eine höhe von 23, bei 10 pixeln eine höhe von 11, immer nur ein bisschen mehr hoch als breit also.
ich brauche in meinem fall also nur zu checken ob das verhältnis der seiten eines bildes kleiner gleich 1 : 1.2 ist, wenn ja, dann blende ich es aus. ich mach das mit width=0/height=0, aber es würde mit einem css-style (display: none) wahrschlich genau so gehen.
hab keine ahnung ob es auch eine elegante lösung dafür gibt, aber die hier funktioniert schon mal

code dazu:

die methode checkAllImages() wird beim laden des dokuments aufgerufen.

Code:

function checkAllImages()
{
        i = 0;
        while (document.images[i] != null)
        {
                checkImage(document.images[i++]);
        }
}

function isValidImage(bild)
{
        return        (bild.height > bild.width * 1.2)
}

function checkImage(bild)
{
        if (!isValidImage(bild))
        {
                bild.width=0;
                bild.height=0;
        }
}


JackLemon 14.10.2004 12:41

mit einer lösung, die für mich gut passt, die man aber wahrscheinlich bei weiterer verwendung noch ein bisschen anpassen muss... was ich anzeige sind alles foto-scans, die haben immer das format 9x13 (oder 10x15 oder so), ich zeige sie hochformat an.
wenn ich bei allen fotos nur die breite definiere, dann berechnet der IE die höhe entsprechend proportional wenn das foto vorhanden ist. ein 20 pixel breites foto wird ca. 30 pixel hoch.
wenn das foto nicht vorhanden ist dann kommt so ein "bild nicht gefunden"-bild, das hat bei einer breite von 20 pixeln eine höhe von 23, bei 10 pixeln eine höhe von 11, immer nur ein bisschen mehr hoch als breit also.
ich brauche in meinem fall also nur zu checken ob das verhältnis der seiten eines bildes kleiner gleich 1 : 1.2 ist, wenn ja, dann blende ich es aus. ich mach das mit width=0/height=0, aber es würde mit einem css-style (display: none;) wahrschlich genau so gehen.
hab keine ahnung ob es auch eine elegante lösung dafür gibt, aber die hier funktioniert schon mal

code dazu:

die methode checkAllImages() wird beim laden des dokuments aufgerufen.

Code:

function checkAllImages()
{
        i = 0;
        while (document.images[i] != null)
        {
                checkImage(document.images[i++]);
        }
}

function isValidImage(bild)
{
        return        (bild.height > bild.width * 1.2)
}

function checkImage(bild)
{
        if (!isValidImage(bild))
        {
                bild.width=0;
                bild.height=0;
        }
}



Alle Zeitangaben in WEZ +2. Es ist jetzt 01:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag