Arten, POP-UP Ebenen zu schliessen, ändern

christian-juhasz schrieb am 05.03.2018 um 00:23 Uhr

Servus,

neues Projet, neue Probleme.

Momentan bastel ich an einer Homepage für ein Restaurant. Natürlich soll dort auch die Speisekarte abgebildet sein.

Dafür habe ich am linken Rand mehrere Felder je nach Kategorie (Vorspeisen, Hauptspeisen, etc.) erstellt, die eine POP-UP Ebene auslösen, auf der die jeweilige Karte steht. Zum Schliessen einer POP-UP Ebene gibt es meines Wissens nach zwei Möglichkeiten, die man einstellen kann. Einmal das automatische Schliessen, das beim Klick an irgendeine Stelle die Ebene wieder schliesst und das manuelle Schliessen, bei dem man auf das schwarze X oben recht klicken muss.

http://www.schulungsaccounts.de/speisekarte.htm (Testaccount)

Allerdings haben beide Arten, POP-UP Ebenen zu schliessen, für mich Nachteile.

Automatisches Schliessen: Wenn ich beim Scrollen ausversehen irgendwo hin klicke, schliesst sich die Ebene wieder. Dies ist beim Durchstöbern der Karte recht nervig. Ausserdem habe ich die Situtaion, dass die Karte auf Grund ihrer Länge in einer Kategorie aus zwei Ebenen besteht, zwischen denen mit Hilfe von Pfeilen gewechselt werden soll. Dies funktioniert aber nicht, da der Versuch auf den Pfeil zu klicken die POP-UP Ebene wieder schliesst.

Manuelles Schliessen: Hierbei ist es immer notwendig, eine Ebene zu schliessen, bevor man zur nächsten wechseln kann. Möchte man z.B. von den Getränken zu den Hauptspeisen wechseln, so muss man vorher umständlich das X betätigen. Ich finde das stört den Fluss beim Surfen und wird nach 3-4 mal recht nervig.

 

Gibt es eine Möglichkeit, einen Bereich der Seite für das automatische Schliessen zu sperren? Ich würde mir das so vorstellen, dass die komplette Seite für das Anklicken gespertt ist, ausser der Bereich, in dem Buttons sind, also oben die Menüzeile und links die Kategorien.

Oder gibt es noch eine Andere Art, wie man das am besten umsetzt?

 

Gruss, Chris

 

Kommentare

marboe schrieb am 05.03.2018 um 02:28 Uhr

Schau doch mal, ob dich das weiter bringt :

https://www.magix.info/de/tutorials/einen-link-von-popup-ebene-zu-popup-ebene-setzen--1193581/

 

Ergänzung 6.22 Uhr:

Die Funktion "Popup (lock)" kennst du?

 

Gruß marboe

christian-juhasz schrieb am 22.03.2018 um 23:29 Uhr

Servus,

 

danke für Deine Antwort.

Popup (lock) kenn ich nicht, wenn es was anderes als das Häkchen "automatisch schliessen" ist.

 

Gruss, Chris

marboe schrieb am 23.03.2018 um 06:58 Uhr

Hallo Chris,

mit der Funktion "lock" sperrst du sozusagen die PopUpEbene. Sie muss gezielt geschlossen werden mit einem Klick auf einen von dir kreierten Button.

Hier die entsprechenden Screenshots dazu:

- Angelegt: PopUp Ebene mit Zusatz "(lock)"

- Link zur Ebene von Mouse Off aus

Danach musst du einen Button oder ähnliches erstellen, der dann für das Schliessen sorgt. Zum Beispiel:

- Button mit Kreuz angelegt

- Verlinkung gesetzt mit "popup:close"

Gruß Marboe

christian-juhasz schrieb am 23.03.2018 um 08:17 Uhr

Danke für die Antwort.

Das ist natürlich für den Besucher der Seite recht umständlich. Ich würde es für eine Speisekarte nutzen, bei der jeder Bereich (Vorspeise, Hauptspeise, etc.) eine PopUp Ebene bekommt. Wenn ich jetzt schnell zwischen den Ebenen hin und her wechseln möchte, muss ich die eine Ebene extra schliessen. Ich glaube ich werde den Lösungsansatz aus deinem Video oben im Link verwenden.

Auf jede PopUp Ebene kommt über die eigentlichen Schaltflächen auf der Hauptebene eine transparente Schaltfläche, die auf die jeweils andere PopUp Ebene querverweist und wechselt.

 

Gruss, Chris

BeRo schrieb am 24.03.2018 um 23:09 Uhr

[...] Wenn ich jetzt schnell zwischen den Ebenen hin und her wechseln möchte, muss ich die eine Ebene extra schliessen [...]

Es geht sehr viel einfacher, wenn Du ein paar Zeilen JScript "investierst" 😁
Dann kannst Du z. B. mit einem Klick (Link) alle aktuell geöffneten popup Ebenen schließen und die gerade gewünschte popup Ebene aktiveren (anzeigen).

Damit das so einfach funktioniert, musst Du vorher noch im HTML Body der Seite das u. a. JScript anlegen:

<script>
function pu_open(my_name)
{var o=document.getElementById(my_name).parentNode; if(o.id=='')o=o.parentNode;xr_v1(o);};

function pu_close(my_name)
{var o=document.getElementById(my_name).parentNode; if(o.id=='')o=o.parentNode;xr_v0(o);};

function closeAll() {
var ll=document.getElementsByTagName('div');
for(var i=ll.length-1;i>=0;i--) {
if(ll[i].id.indexOf("xr_xp")==0){
xr_v0(ll[i]);};};};
</script>

Darin sind drei Funktionen enthalten, die Du einzeln (oder in Kombination) benutzen kannst.

Wenn Du z. B. nach einem Klick auf einen Link (Text-, Button-, Grafik-, etc.) eine beliebige popup Ebene anzeigen möchtest- und eine beliebige andere popup Ebene vorher geschlossen werden soll, dann kann der JScript Befehl als Link geschrieben werden und so aussehen:

"javascript: closeAll(); pu_open('popup');"

Im JS Funktionsaufruf ist der Name (die ID) der Ebene "popup". Der ist nicht identisch mit dem Namen der Ebene ("Info"), wie er im Editor zu sehen ist, obwohl er identisch sein dürfte.
Wie Du das in Deinem Projekt machst, bleibt also Dir überlassen...

Im Screenshot siehst Du oben links 2 Link Buttons außerhalb der Seite, mit denen auf die 2 popup Ebenen verlinkt wird. Das ist nötig, weil ohne diese Links die Ebenen vom WD nicht als popup Ebenen erkannt werden.
Die JS Funktionen sind ohne diese Links "tot".

Die im o. a. JScript sichtbare Funktion "pu_close(my_name)" wird hier nicht benötigt. Du kannst sie löschen oder gezielt einsetzen, wenn Du z. B. eine bestimmte, angezeigte popup Ebene ausblenden willst. Ansonsten benutzt Du besser die Funktion "closeAll()", wie ich das auch im Link des Screenshots gezeigt habe.

Die online Demo kannst Du hier ansehen.

Die Projektdatei mit allen Scripts/Funktionen kannst Du hier für eigene Experimente herunterladen.

Mit der Methode sollte es Dir leicht fallen, die komplette Menükarte wahlfrei per popup Infos zur Verfügung zu stellen.
Jede mit der Methode geöffnete popup Ebene ist automatisch gelocked, Das heißt, sie kann nur durch einen JS Befehl (hier "closeAll()" oder "popup:close") ausgeblendet werden oder durch einen Reload der Seite (Taste "F5").

Probier's mal aus.

Viel Erfolg

Zuletzt geändert von BeRo am 24.03.2018, 23:22, insgesamt 2-mal geändert.

Ein Klick auf den "Danke" Button (hier rechts), wäre nett. Perfekt wäre ein zusätzliches Posting mit Deiner Erfahrung zu dem/den erhaltenen Tipp(s).
Alle Forenbesucher , die mit vergleichbaren Problemen ihrer Anwendung zu kämpfen haben  und die ebenfalls auf der Suche nach einer Lösung sind, können dann besser entscheiden, ob die angebotene Lösung für das eigene Problem verwertbar ist.
Klar, dass auch der Tippgeber sich freut, wenn seine Hilfestellung mit einem Feedback belohnt wird und nicht kommentarlos ins Leere geht.

christian-juhasz schrieb am 01.05.2018 um 14:03 Uhr

Servus,

 

ich habe es jetzt mal versucht, wie oben beschrieben, umzusetzen und bin dabei nach den Vorgaben vorgegangen.

Das Script liegt im Body der Seite:

 

Die Dummy Links ausserhalb der Seite linken auf die PopUp Ebenen:

 

Die PopUp Ebenen haben den jeweils richtigen Namen:

 

Das Link Objekt verweist auf das Script:

 

.... trotzdem wird nichts geöffnet. http://www.schulungsaccounts.de

Was mache ich falsch?

 

Gruss, Chris

EDIT: Die Änderungen habe ich zunächst nur für die grosse Seitenvariante erstellt.

Zuletzt geändert von christian-juhasz am 01.05.2018, 14:31, insgesamt 2-mal geändert.

Windows 7 Pro 64 bit mit SP 1, AMD FX-8530 4.00 GHz, 16 GB DDR4, GTX 1070 8 GB, 2x Lenovo L24Q-10, MAGIX Web Designer 15 Premium, MAGIX Audio & Music Lab Premium, HTML-Level: Depp!

BeRo schrieb am 01.05.2018 um 18:35 Uhr

[..] trotzdem wird nichts geöffnet. http://www.schulungsaccounts.de
Was mache ich falsch? [...]

Vermutlich ist einer der "üblichen Verdächtigen" die Ursache. 😉
Du verwendest Punkte und Leerzeichen in den Namen der Ebenen und in den Namen, die als ID benutzt werden. Das muss Probleme machen! 😣

Korrigier' das mal, dann wird's wahrscheinlich schon funktionieren...

Viel Erfolg

BTW
Die URL "www.schulungsaccounts.de" zeigt scheinbar eine ältere Version. jedenfalls funktionieren da alle Links zu den popup Ebenen...

Ein Klick auf den "Danke" Button (hier rechts), wäre nett. Perfekt wäre ein zusätzliches Posting mit Deiner Erfahrung zu dem/den erhaltenen Tipp(s).
Alle Forenbesucher , die mit vergleichbaren Problemen ihrer Anwendung zu kämpfen haben  und die ebenfalls auf der Suche nach einer Lösung sind, können dann besser entscheiden, ob die angebotene Lösung für das eigene Problem verwertbar ist.
Klar, dass auch der Tippgeber sich freut, wenn seine Hilfestellung mit einem Feedback belohnt wird und nicht kommentarlos ins Leere geht.

christian-juhasz schrieb am 15.05.2018 um 10:58 Uhr

Servus,

Danke BeRo. Jetzt funktioniert es ... allerdings nur für eine Website-Variante.

Wenn ich nun eine zweite Variante erstelle, wird nichts geöffnet. Ich habe nochmal die Demo mit meinem Projekt verglichen und bin auf dieses Xxr_v2_popup2S in den Link-Einstellungen des Buttons gestossen.

Ich gehe mal davon aus, dass dieses v2 besagt, dass der Befehl auch für die zweite Version gelten soll. Wenn ich nun zusätzlich noch eine dritte Version erstellen würde, müsste es dann v3 heissen?

Was dieses S hinter popup2 bedeuten soll, konnte ich mir allerdings noch nicht eindeutig erklären. Die Website-Version heisst [Standard]. Ist das der Anfangsbuchstabe des Versionsnamens?

 

Gruss, Chris

Zuletzt geändert von christian-juhasz am 15.05.2018, 10:59, insgesamt 1-mal geändert.

Windows 7 Pro 64 bit mit SP 1, AMD FX-8530 4.00 GHz, 16 GB DDR4, GTX 1070 8 GB, 2x Lenovo L24Q-10, MAGIX Web Designer 15 Premium, MAGIX Audio & Music Lab Premium, HTML-Level: Depp!

BeRo schrieb am 15.05.2018 um 11:33 Uhr

[...] habe nochmal die Demo mit meinem Projekt verglichen und bin auf dieses Xxr_v2_popup2S in den Link-Einstellungen des Buttons gestossen. [...]

Der Präfix "Xxr_v..." resultiert aus einem Bug, den der WD15 noch mitschleppt. Mehr Infos findest Du hier.

[...] Wenn ich nun zusätzlich noch eine dritte Version erstellen würde, müsste es dann v3 heissen? [...]

Vermutlich ja. Wie der WD die Benennung nun genau durchführt, weiß ich leider nicht. Nach dem lokalen Export der Site kannst Du aber im Quellcode schnell die richtige Benennung finden, wie hier schon gesagt.

[...] Was dieses S hinter popup2 bedeuten soll, konnte ich mir allerdings noch nicht eindeutig erklären. [...]

"S" steht in dem Fall als Synonym für "Smartphone Variante". Du kannst an der Stelle jedes beliebige andere Zeichen- oder mehrere benutzen. Es muss nur sichergestellt sein, dass der Name (die ID) sich von den Namen unterscheidet, die in anderen Varianten benutzt werden.

Probier's nochmal.

Viel Erfolg

Ein Klick auf den "Danke" Button (hier rechts), wäre nett. Perfekt wäre ein zusätzliches Posting mit Deiner Erfahrung zu dem/den erhaltenen Tipp(s).
Alle Forenbesucher , die mit vergleichbaren Problemen ihrer Anwendung zu kämpfen haben  und die ebenfalls auf der Suche nach einer Lösung sind, können dann besser entscheiden, ob die angebotene Lösung für das eigene Problem verwertbar ist.
Klar, dass auch der Tippgeber sich freut, wenn seine Hilfestellung mit einem Feedback belohnt wird und nicht kommentarlos ins Leere geht.

christian-juhasz schrieb am 15.05.2018 um 22:27 Uhr

Servus,

 

irgendwie stecke ich gerade fest und komme nicht weiter.

Die Stellen, an denen die ID zu ändern wäre, habe ich gefunden (zumindest bin ich der Meinung das), da beim oberen der beiden ID="POP1" die Koordinaten denen der FHD Version entsprechen, beim unteren denen der Laptop Version (bei mir mit LT benannt).

Nun habe ich die untere ID sowie die Verlinkung im WD wie in Deinem Link beschrieben geändert, aber es tut sich nichts.

Mir ist beim Basteln noch was eingefallen, womit ich wahrscheinlich das Problem haben werde.Es gibt zwischen den Versionen FHD un LT Unterschiede bei den Popup Seiten. Während bei der FHD Version die Kategorie "Kalte Vorspeisen" z.B. nur eine Seite hat, ist die Speisekarte in der LT Version auf Grund des geringeren Platzes auf zwei Popups aufgeteilt. Das heisst, bei der FHD heisst die Popup Ebene "POP_1_KALTE_VORSPEISEN", während sie bei der LT Version "POP_1_1_KALTE_VORSPEISEN" bzw "POP_1_2_KALTE_VORSPEISEN" heissen. Könnte das problematisch sein?

Hier mal der Link zur "unverbastelten" Testversion, direkt aus dem WD ohne Änderungen oder besonderen Links. In der FHD Version funktioniers wie es soll, macht man den Browser kleiner und landet in der LT Version, geht nichts.

Bis jetzt habe ich nur mit der ersten Kategorie gespielt. Solange es nicht einem Link funktioniert, spare ich mir die anderen.

 

Gruss, Chris

BeRo schrieb am 15.05.2018 um 22:48 Uhr

[...] Nun habe ich die untere ID sowie die Verlinkung im WD wie in Deinem Link beschrieben geändert, aber es tut sich nichts [...]

Das wundert mich jetzt nicht wirklich, weil Du für beide Varianten eine identische ID "pop1" verwendest. 😣

Dass die LT ID "Xxr_v2_pop1" sich im Quellcode optisch von der FHD ID "pop1" unterscheidet, ist irreführend, weil der WD intern in beiden Fällen die ID "pop1" referenziert und das muss zu Problemen führen...

Erweitere die IDs der LT Version wie weiter oben schon besprochen um min. 1- oder mehrere Zeichen/Buchstaben, z. B. mit "LT". Eine komplette ID für die LT Version könnte also so aussehen "Xxr_v2_pop1LT"

Neuer Versuch?

Ein Klick auf den "Danke" Button (hier rechts), wäre nett. Perfekt wäre ein zusätzliches Posting mit Deiner Erfahrung zu dem/den erhaltenen Tipp(s).
Alle Forenbesucher , die mit vergleichbaren Problemen ihrer Anwendung zu kämpfen haben  und die ebenfalls auf der Suche nach einer Lösung sind, können dann besser entscheiden, ob die angebotene Lösung für das eigene Problem verwertbar ist.
Klar, dass auch der Tippgeber sich freut, wenn seine Hilfestellung mit einem Feedback belohnt wird und nicht kommentarlos ins Leere geht.