FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Standarduser am 10 April 2017, 18:07:31

Titel: Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Standarduser am 10 April 2017, 18:07:31
Hallo zusammen,

Mein Layout besteht im Moment aus einer index.html mit Pagebutton-Menü für 5 Seiten. Alle Seiten besitzen class="prefetch".
Auf der 5. HTML-Seite habe ich mir ein neues Layout gebaut, an dem ich solange geschraubt habe, bis es passte. Im wesentlichen besteht es aus ein paar DIVs und einem 2-seitigen Swiper mit weiteren Elementen.
Nachdem es nun fertig ist, soll es von HTML-Seite 5 auf HTML-Seite 2 wandern. Doch dort funktioniert der Swiper nicht mehr. Die zweite Swiper-Seite ist zwar da (sieht man dadurch, dass sie beim swipen leicht sichtbar wird), lässt sich aber nicht vollständig einblenden. Auch der Pagination-Button der zweiten Seite wird nicht angezeigt.
Durch ewiges Cache-Löschen konnte ich das in Safari (Mac) und Chrome (Mac) wieder hinbekommen, der Fully Kiosk Browser auf dem Tablet weigert sich jedoch beharrlich, die zweite Swiper-Seite anzuzeigen.
Das Entfernen von class="prefetch" für die 2. HTML-Seite führt dazu, dass der Swiper wieder richtig läuft, aber irgendwie ist das schon komisch. HTML-Seite 5 mit prefetch ist kein Problem, HTML-Seite 2 hingegen schon.

Hat jemand dieses Verhalten schonmal jemand beobachtet? Hat vielleicht sogar jemand eine Lösung dafür?
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Paul.baumann am 30 August 2017, 09:49:32
Hallo,

das Thema ist ja schon älter, aber das beschriebene Verhalten zeigt sich bei mir ähnlich:

Auch ich nutze PageButton zur Navigation und habe mehrere Seiten eingebunden. Eine dieser Seiten enthält zwei Swiper-Widgets, welche sauber funktionieren. Sobald ich in der index.html im pagebutton für diese Seite die Klasse prefetch einbaue, funktionieren die Swiper-Widgets nicht mehr.

Gibt es hier neue Erkenntnisse?


Paul
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 30 August 2017, 12:56:52
Seiten mit prefetch werden im Hidden Zustand initialisiert. Das kann bei Elementen, die eine aktuelle Größe abfragen zu Problemen führen. Es kommt darauf an, wie die Größe abgefragt wir. Einmal kommt 0 raus und einmal die korrekte Größe. Swiper benutzt eine eine externe Lib. Weiß garnicht, ob ich darin jemals was geändert habe. Evtl. gibt es auch eine neuere Version davon.
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Paul.baumann am 31 August 2017, 08:39:26
Zitat von: setstate am 30 August 2017, 12:56:52
Das kann bei Elementen, die eine aktuelle Größe abfragen zu Problemen führen. Es kommt darauf an, wie die Größe abgefragt wir. Einmal kommt 0 raus und einmal die korrekte Größe.
Klingt plausibel. Mir ist auch schon aufgefallen, dass mit prefetch Style-Angaben im HTML-Code fehlen.

ohne prefetch: <li class="noswipe swiper-slide swiper-slide-next" style="width: 430px;">
mit prefetch: <li class="noswipe swiper-slide swiper-slide-next">


Zitat von: setstate am 30 August 2017, 12:56:52
Swiper benutzt eine eine externe Lib. Weiß garnicht, ob ich darin jemals was geändert habe. Evtl. gibt es auch eine neuere Version davon.

Es gibt eine neuere Version, die macht aber bei diesem Verhalten keinen Unterschied.


Danke Paul
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 06 September 2017, 19:23:05
Neue Version getestet -> perfekt, funktioniert

Jetzt gibt es neu den Parameter "observer"

observer   boolean   false   Set to true to enable Mutation Observer on Swiper and its elements. In this case Swiper will be updated (reinitialized) each time if you change its style (like hide/show) or modify its child elements (like adding/removing slides)

Diesen habe ich beim widget_swiper.js auf "observer: true," gesetzt.

Update kommt heute Abend mit
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Standarduser am 06 September 2017, 20:14:44
Zitat von: setstate am 06 September 2017, 19:23:05
Diesen habe ich beim widget_swiper.js auf "observer: true," gesetzt.

Das heißt, das ist fest im Widget eingebaut und muss nicht als Attribut im Quelltext platziert werden?
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 06 September 2017, 20:29:52
ich denke, das kann immer an bleiben (bis zum Beweis des Gegenteils). Also ja, es ist fest nur im Widget angeschaltet.

evtl. findet jemand andere Features, die man per HTML attribute steuern müsste:

http://idangero.us/swiper/api/
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 07 September 2017, 07:15:53
Update Verzögerung sich noch. Ich habe noch ein Problem bei aus/eingeblendetem Dimmer-Widget gefunden. Da wird die Scale überlang angezeigt
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Paul.baumann am 08 September 2017, 17:20:33
Hallo setstate,

wie ist aktuell der Status? Sollte die prefetch-Thematik mittlerweile funktionieren? Die ähnliche Problematik im Thread https://forum.fhem.de/index.php/topic,76263.msg682513.html#msg682513 (https://forum.fhem.de/index.php/topic,76263.msg682513.html#msg682513) scheint ja gelöst.

Bei mir lässt sich der Swiper aktuell nicht bedienen, wenn die Seite per prefetch geladen wird.


Danke Paul
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 08 September 2017, 18:20:11
Ich gehe davon aus, dass es seit gestern gehen sollte. Ich teste das bei mir nochmal.
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: setstate am 08 September 2017, 21:18:08
Stimmt  :D Ging noch nicht.
Zum Glück gibt es beim Swiper

observeParents: true,

Jetzt passt es.  8)
Titel: Antw:Swiper-Seiten werden bei Prefetch nicht angezeigt(?)
Beitrag von: Paul.baumann am 08 September 2017, 21:47:51
Jetzt passt's  :)

Vielen Dank