mouseover+bildauswahl
Petrosch
- html
Hallo liebe html-Gemeinde!
Ich moechte mit einem Mouse-Over ein Logo anzeigen.
Wenn kein Logo hinterlegt ist, soll ein Dummy-Logo angezeigt werden.
Jetzt sind das über 20000 Datensätze und nur wenige haben ein echtes Logo.
Heisst das, dass ich 19100 Dummy-Logos erzeugen muss?
Oder kann man eine Abfrage einbauen?
Momentan habe ich es so gelöst, so läuft es, aber es gibt viel zu viele Dummys bei der Lösung.
<td class="ergebniszeile"><a onmouseover="Tip('<img src="logo/<%$adr_id%>_1.jpg">', TEXTALIGN, 'center')" onmouseout="UnTip()" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>
Es wird die dazugehörige ID_1.jpg benutzt, wenn ein Logo da ist!
Es wird die dazugehörige ID_2.png benutzt, wenn KEIN Logo da ist!
Wie kann man so etwas lösen?
Hallo Petrosch!
du könntest immer ein und dasselbe Dummy- Bild anzeigen und dann das ID- Bild laden. Wenn es da ist (onload), ersetzt du das Dummy- Bild.
Wenn das ID- Bild nicht kommt, bleibt das Dummy- Bild stehen.
Kalle
Hallo Petrosch!
du könntest immer ein und dasselbe Dummy- Bild anzeigen und dann das ID- Bild laden. Wenn es da ist (onload), ersetzt du das Dummy- Bild.
Wenn das ID- Bild nicht kommt, bleibt das Dummy- Bild stehen.
Kalle
Ja, so etwas habe ich mir auch überlegt, weiß aber leider nicht, wie ich das umsetzen soll ...
Natürlich wäre das viel einfacher als ca.20000 Dummy-Bilder zu erzeugen, in denen immer das Gleich drinsteht - schwachsinnig sogar.
Lieber Petrosch,
wenn in Deinen Datensätzen ein Logo eingetragen ist, dann wird das angezeigt. Wenn keines eingetragen ist (auch kein "Dummy"), dann wird das Dummy-Logo angezeigt. Dazu reicht ein Dummy-Logo für alle.
<td class="ergebniszeile"><a onmouseover="Tip('<img src="logo/<%$adr_id%>_1.jpg">', TEXTALIGN, 'center')" onmouseout="UnTip()" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>
Ich finde den onmouseover und Konsorten nicht gut. Was soll das Attribut im HTML-Code, wenn User ohne verfügbares JavaScript daherkommen? Eine bessere Methode wäre es, dem <a>-Element eine Klasse zuzuweisen, die dann später von einem JavaScript erkannt und verarbeitet wird. In der ID des <a>-Elements könnte man dann den Dateinamen (ohne Endung?) eintragen, oder auch in Deinem Falle die ID als Dateinamen direkt verstehen.
<!-- mit echtem Logo -->
<td class="ergebniszeile"><a class="logo-link" id="ax_9418b_keine_ahnung_97" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>
<!-- mit Dummy -->
<td class="ergebniszeile"><a class="logo-link" id="dummy" href="detail.php?a_id=<%$adr.a_id%>"><%$adressen.a_name%></a></td>
Ein JavaScript, das nach dem Laden der Seite automatisch ausgeführt wird, holt sich dann alle <a>-Elemente dieser Klasse ("logo-link") und verleiht ihnen die benötigten Eventhandler dynamisch. Dabei wird als Logo-Dateiname einfach an die $adr_id ein ".jpg" gehängt - und als "dummy.jpg" hast Du dann Dein Ersatzbild.
Wie das mit dem JavaScript geht, kannst Du hier genauer betrachten:
* Autostart eines JavaScriptes
* Elemente mit einer bestimmten Klasse ansprechen: getElementsByClassName
* http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Eventhandler
Liebe Grüße,
Felix Riesterer.
Hallo nochmal,
ich habe gerade gesehen, dass ich eine nicht vollständige Zeile als Source-Code gepostet habe.
So ein Mist.
Das kommt davon, dass man 3 unterschiedliche Rechner hat und ebensoviele unterschiedliche Versionen.
Muss mal schauen, ob ich an die Zeile rankomme, die ich meinte ...