Beiträge von Sempervivum

    Gar nicht verwirrend. Ich hatte es zunächst auch so verstanden, aber dann in meine Testdatei gesehen, die ich früher von dir übernommen hatte und dort keine Skriptdatei gefunden. In deiner endgültigen Seite habe ich es jedoch gefunden. Wenn Du mein Skript in deins übernimmst, das Du im Header einziehst, musst Du es in das document-ready schreiben:

    Ganz korrekt ist dein Entwurf noch nicht, es muss so aussehen:

    JavaScript
    window.addEventListener("beforeunload", function () {                window.localStorage.setItem("scrollLeft" + window.location.pathname, $(window).scrollLeft());
                    window.localStorage.setItem("scrollTop" + window.location.pathname, $(window).scrollTop());
                });
                var leftPos = window.localStorage.getItem("scrollLeft" + window.location.pathname);
                var topPos = window.localStorage.getItem("scrollTop" + window.location.pathname);
                $(window).scrollLeft(leftPos);             $(window).scrollTop(topPos);

    Wenn Du das in eine Datei, z. B. scrollto.js schreibst, musst Du diese, analog zu jQuery, so einziehen:

    HTML
    <script src="scrollto.js"></script>

    ggf. mit Verzeichnis, wenn Du sie in ein Unterverzeichnis legst.

    Was das Einbinden von jQuery betrifft: Wenn Du diese Zeile schon hast, solltest Du jQuery nicht ein zweites Mal einbinden.

    Natürlich kannst Du das Javascript in eine Datei einziehen und auf allen Seiten verwenden. Du musst jedoch bedenken, dass es nur bei einem Neuladen der gleichen Seite funktioniert. Wenn Du eine neue Seite lädst, wird die Scrollposition der vorigen Seite eingestellt und das ist ja sicher nicht das, was Du willst. Man kann das aber ändern, indem man die URL der Seite in den Item-Namen mit aufnimmt, etwa so:

    JavaScript
    window.localStorage.setItem("scrollLeft-" + window.location.pathname, $(window).scrollLeft());

    Um es browserübergreifend zum Laufen zu bringen, musste ich jquery verwenden. Binde es im head ein:

    HTML
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>

    und füge dieses Javascript am Ende des body, vor dem schließenden </body> ein:

    JavaScript
    <script>            window.addEventListener("beforeunload", function () {                window.localStorage.setItem("scrollLeft", $(window).scrollLeft());                window.localStorage.setItem("scrollTop", $(window).scrollTop());            });            var leftPos = window.localStorage.getItem("scrollLeft");            var topPos = window.localStorage.getItem("scrollTop");            $(window).scrollLeft(leftPos);            $(window).scrollTop(topPos);         </script>
    Zitat

    nun lädt die Seite ja immer neu und springt dabei nach oben. Gibt es eine Funktion, dass die Seite "stehen bleibt" auch wenn sie neu lädt?

    Ja, man kann die Scrollposition im Localstorage speichern und beim Neuladen die wieder herstellen. Mache ich dann ...

    Sehr gelungenes Design!

    Dann mach es doch so:

    HTML
    <area   shape="rect" coords="510,32,640,328" href="javascript:showMenu('menu4');"
       onmouseover="changeImage('bild_40.png'); document.getElementById('menu4').style.display = 'block';"
       onmouseout="changeImage('bild.png');"/>
    HTML
    <div id="menu4" onmouseout="this.style.display = 'none';"> 
             Menu 4 
            <a href="link1.htm">Link1</a> 
            <a href="link2.htm">Link2</a> 
            <a href="link3.htm">Link3</a>    </div>

    Eleganter wäre es jedoch, das Menü so zu positionieren, dass es die Area überlappt, so dass man ohne Unterbrechung von einem zum anderen hovern kann.

    Tabellen für Layoutzwecke sind heutzutage stark verpönt. Ich empfehle, die Elemente mit CSS nebeneinander anzuordnen:

    CSS
    #infoimg {                float: left;
                }
                #infolis {
                    margin-left: 150px !important;             }

    Oder so:

    CSS
    #infolis {                display: inline-block;
                    width: calc(100% - 150px);
                }
                #mp3infos img {
                    vertical-align: top;             }
    Zitat

    Jetzt müssen meine Menüs nur noch visible bleiben, bis ich die "Menü-Fläche" oder die auslösende area im Hauptbild verlasse...

    Das verstehe ich nicht: Dass das Menü beim Verlassen der Area wieder unsichtbar wird, hast Du doch schon programmiert. Aber wenn das so ist, ist das Menü doch gar nicht bedienbar, weil es ja verschwindet, wenn man die Maus dorthin bewegt.
    Oder möchtest Du, dass das Menü erscheint, wenn man mit der Maus die Area betritt und erst verschwindet, wenn man mit der Maus das Menü verlässt?

    Du hast es jetzt zwar mit dem Wechsel des Bildes gelöst, aber man kann das Einfärben der Bereiche auch dynamisch mit Javascript machen:
    http://www.netzgesta.de/mapper/

    Das wäre zu empfehlen, wenn Du später noch weitere Areas hinzu fügen möchtest, dann musst Du nicht jedes Mal ein neues Bild anfertigen.


    Hast Du auch bedacht, was auf Touch-Geräten passiert, die kein Mouseover haben?

    So, mit dem Einfügen des Bildes und der Tags im Kopf bin ich fertig. Du kannst es ja noch nach deinen Vorstellungen stylen.

    Zitat

    Bei mir sollen ja "nur" 8 Tags pro mp3 ausgelesen werden.

    Diese Zeile im PHP:

    PHP
    $ThisFileInfo = $getID3->analyze($filename);



    liest alle Tags aus. Welche man dann verwendet, spielt keine Rolle.

    Zitat

    Lasse Dich nicht irritieren: Es ist exakt der html5-List-Player von dem Herrn Weisshart > erl ässt sich via CSS anders layouten! Das habe ich gemacht.

    Man kann das Umfeld des Player layouten, aber der Player selbst mit seinen Controls sieht in jedem Browser anders aus. Das Layout in deiner Grafik ist das von Firefox. Probiere es mal mit einem anderen Browser!
    Aber wir können das erst Mal zurück stellen.

    Was das Laden betrifft, habe ich es gerade mit deiner Testseite ausprobiert und diese lädt wirklich sehr schnell. Wenn das so ist, können wir das Neuladen wahrscheinlich akzeptieren und ich werde jetzt mit dem Einfüge der Tags in den Kopf weiter machen.

    Noch etwas: Der Player in deiner Grafik sieht ganz anders aus als der Player, der von der Testseite angezeigt wird. Dieser ist der Player von HTML5 und er sieht in jedem Browser anders aus - probiere es aus. Ich selber benutze den Mediaelement-Player:
    http://mediaelementjs.com/
    Dieser sieht annähernd so aus wie in deiner Grafik, bis auf den Lautstärkebalken. Überlege, ob wir beim HTML5-Player bleiben oder mediaelement nehmen.

    Zitat

    es hat sehr lange gedauert bis sich die Testseite aufgebaut hat

    Ich vermute, dass das nicht nur an dem var_dump liegt, sondern vor allem daran, dass ja die MP3s gelesen werden müssen, um die Tags zu ermitteln. Im Zusammenhang damit müssten wir zunächst eine Frage klären, bevor ich weiter mache:
    Wählt man aus der Liste einen anderen Titel aus, wird leider die Seite neu geladen. Das bedeutet, dass in diesem Fall wieder die ganze Zeit verstreicht, in der die Tags gelesen werden. Probiere das mal aus. Wenn es nicht akzeptabel ist, müssten wir uns von diesem Verfahren verabschieden und den ausgewählten Titel mit Javascript an den Player schicken, so dass er gespielt wird, ohne dass die Seite neu geladen wird.

    Na, das ist doch ein großer Fortschritt, dass jetzt die Tags ausgelesen werden.
    Dann poste mal, welche Tags Du brauchst (wenn Du das var_dump() aktivierst, siehst Du, dass sehr viele vorhanden sind) und wo sie angezeigt werden sollen. Ich glaube, früher hattest Du geschrieben, dass z. B. das Bild über dem Player angezeigt werden soll. Also beschreibe genau welches Tag wo angezeigt werden soll, in der Liste unter dem Player für alle Titel oder/und in dem Anzeigefeld über dem Player für den aktuellen.

    Dieses ist wohl das entscheidende:
    "Caught exception: Required module.tag.id3v2.php is missing."

    Anscheinend ist die Datei getid3.php wohl doch nicht ausreichend, sondern er braucht weitere Dateien aus diesem Verzeichnis. Versuche, alle wieder hochzuladen, dann müsste es sich verbessern. Das sind ca. 1,7 MB und diese müssen ja nicht herunter geladen werden, wie bei js-Dateien, sondern sie werden nur auf dem Server gebraucht.

    Die Ausgabe von var_dump() liefert die Erklärung, warum es nicht funktioniert:
    "getID3() requires PHP v5.3.0 or higher - you are running v5.2.17"

    Das PHP deines Servers ist zu alt. 5.2 wird schon lange nicht mehr unterstützt. Informiere dich bei deinem Hoster, wie Du auf eine neuere Version upgraden kannst.