Beiträge von Sempervivum

    Ach so, ich hatte dies übersehen:

    JavaScript
    window['func_mouseout'+i] = r_on_out(i);


    Was hier passiert, ist folgendes: Da der Funktionsname r_on_out von einem Klammernpaar gefolgt wird, wird nicht diese Funktion zugewiesen sondern r_on_out wird ausgeführt mit i als Parameter und der Rückgabewert wird zugewiesen. D. h. ganz etwas anderes als das, was Du möchtest.

    Dies ist ein häufiges Problem, wenn man Eventlistener in einer Schleife registriert und dabei den Schleifenindex verwendet. Was passiert, ist folgendes: Der Code in der anonymen Funktion wird ja nicht beim Registrieren ausgeführt, sondern erst, wenn das Ereignis, in diesem Fall das Mouseout, eintritt. Dann ist die Schleife längst durchgelaufen und der Index hat seinen Endwert von 13. Lösung ist folgende:

    JavaScript
    st_list[i].addEventListener('mouseout', function(idx) {return function() {r_on_out(idx)};}(i), false);


    In diesem Fall wird die äußere Funktion sofort aufgerufen, weil auf die Definition ein Klammernpaar folgt. Innerhalb der äußeren Funktion hat der Parameter idx den aktuellen Wert, der in der inneren Funktion verwendet wird. Die äußere Funktion gibt die innere als Returnwert zurück und die innere wird als Listener registriert.

    Gängige Ursache für solche Probleme: Groß- und Kleinschreibung. Wenn Du unter Windows arbeitest ist es egal, aber dein Webserver unterscheidet Groß- und Kleinschreibung: bild.jpg ist etwas anderes als Bild.jpg, oder bild.jpg vs. bild.JPG.

    Das liegt an diesen beiden CSS-Anweisungen, die auf beide Bilder wirken:

    CSS
    .td5 img {    height: 80px!important;}
    img {    height: auto;    max-width: 100%;    vertical-align: middle;}


    Das max-width bei dem zweiten, beides in style.css definiert. Hast Du Zugriff auf diese Datei? Ich würde empfehlen, beide Bilder gezielt anzusprechen und die Breite und die Höhe zu setzen:

    CSS
    .imgtip > img {    height: 80px!important;}
    .imgtip > span > img {    max-width: none;}

    Selbstverständlich ist das möglich: Gib der Tabelle, die abweichend formatiert werden soll, eine ID:

    HTML
    <table id="special">

    Darauf beziehst Du dich dann im CSS:

    CSS
    table#special {	border-collapse: separate;	border-spacing: 0.2em;	margin-left: 2em;	box-shadow: 0 0 0.1em #666;	position: relative;	z-index: 1;	cursor: context-menu;}table#special th,table#special td {	padding: 0.2em 0.5em;	border-radius: 0.1em;}table#special thead th {	background-image: linear-gradient(to top, red 10%, blue ); 	color: white; }

    usw.

    Du hast schon richtig erkannt: Wenn Du dein Ziel erreichen willst, musst Du konsequent mit Prozent- statt Pixel-Angaben arbeiten. Ich habe es mal so gemacht:

    Ist sicherlich eine interessante Aufgabe, so etwas nur mit CSS zu machen, aber ich finde, nicht alles, was machbar ist, ist auch sinnvoll. Vor allem die Änderungsfreundlichkeit beim Hinzufügen neuer Bilder lässt zu wünschen übrig, weil man alle Prozentangaben neu berechnen muss. Bei einem Slider mit Javascript ist es kein Problem, ihn so anzulegen, dass man nur die Bilder hinzu fügt und alles andere passt sich automatisch an.

    Versuche diese Javascript:

    Ich verstehe nicht ganz, was Du vor hast. OK, Du erzeugst eine Tabelle mit dem Ergebnis der Datenbankabfrage.
    "Beim Versuch diese in eine Liste zu packen scheiter ich allerdings."
    Was meinst Du da für eine Liste? Eine Liste i. S. von HTML (ul-li).
    Edit: Habe einen genaueren Blick auf deinen Code geworfen und gesehen, dass Du ja versuchst, eine ul-li-Liste anzulegen. Dabei sehe ich das Problem, dass Du - von dem Anlegen der Tabelle her - mit dem Cursor schon am Ende angelangt bist. Du musst zuvor der Cursor zum Anfang zurück spulen.
    Außerdem verstehe ich nicht, warum Du beides anlegen willst, eine Tabelle und eine Liste.

    Das ist aber die HP bei Arcor und die funktioniert ja, wenn ich dich richtig verstehe. Also nicht geeignet, den Fehler zu finden. Bei welchem Hoster hast Du es denn versucht? Ich empfehle bplaced.net. Und welchen FTP-Client benutzt Du zum Hochladen? Ein Screenshot vom Serverfenster wäre ebenfalls hiflreich.

    Normaler Weise sind gängige Ursachen:

    • Groß- und Kleinschreibung
    • die Bilder liegen in einem anderen Verzeichnis als im HTML angegeben


    Aber in deinem Fall funktionierte ja alles bei Arcor. Am besten postest Du mal die URL deiner Seite und einen Screenshot der Ansicht in deinem FTP-Client, die Ansicht auf dem Server.

    Wahrscheinlich bekommst Du deshalb keine Antworten, weil Du im falschen Unterforum bist.
    "deshalb sind die alle Verzerrt" - das liegt daran, dass Du deinem img-Tag eine feste Breite und Höhe gegeben hast:

    HTML
    <img name="austausch" src="Seenotretter.jpg" width="1200" height="800" style="position: relative; top: 17px; left: 22px">


    Lass das weg, dann werden deine Bilder nicht verzerrt sondern in originaler Größe angezeigt und ohne das Seitenverhältnis zu verfälschen.

    Wenn es um Klick vs. Hover geht, würde ich eher empfehlen, danach zu unterscheiden, ob Touch unterstützt wird und nicht nach Bildschirmgröße. Ich verwende dazu folgendes:

    JavaScript
    var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0));


    (So bei stackoverflow gefunden, diese Quelle halte ich für zuverlässig.)