Swiper-Seiten werden bei Prefetch nicht angezeigt(?)

Begonnen von Standarduser, 10 April 2017, 18:07:31

Vorheriges Thema - Nächstes Thema

Standarduser

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?

Paul.baumann

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
FHEM auf Raspberry 3
MaxCube (V1.20.04 a-culfw) für HM, MaxCube (V1.20.04 a-culfw) für diverse Max!, NanoCul 433/868, TinyTX-Nachbauten
Multiroom: mehrere Squeezelite-Clients auf Raspberry B+ und LMS auf QNap
Huger WM918 Wetterstation integriert
Tiao-Sprinkler (Open-Sprinkler) integriert

setstate

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.

Paul.baumann

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
FHEM auf Raspberry 3
MaxCube (V1.20.04 a-culfw) für HM, MaxCube (V1.20.04 a-culfw) für diverse Max!, NanoCul 433/868, TinyTX-Nachbauten
Multiroom: mehrere Squeezelite-Clients auf Raspberry B+ und LMS auf QNap
Huger WM918 Wetterstation integriert
Tiao-Sprinkler (Open-Sprinkler) integriert

setstate

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

Standarduser

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?

setstate

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/

setstate

Update Verzögerung sich noch. Ich habe noch ein Problem bei aus/eingeblendetem Dimmer-Widget gefunden. Da wird die Scale überlang angezeigt

Paul.baumann

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 scheint ja gelöst.

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


Danke Paul
FHEM auf Raspberry 3
MaxCube (V1.20.04 a-culfw) für HM, MaxCube (V1.20.04 a-culfw) für diverse Max!, NanoCul 433/868, TinyTX-Nachbauten
Multiroom: mehrere Squeezelite-Clients auf Raspberry B+ und LMS auf QNap
Huger WM918 Wetterstation integriert
Tiao-Sprinkler (Open-Sprinkler) integriert

setstate

Ich gehe davon aus, dass es seit gestern gehen sollte. Ich teste das bei mir nochmal.

setstate

Stimmt  :D Ging noch nicht.
Zum Glück gibt es beim Swiper

observeParents: true,

Jetzt passt es.  8)

Paul.baumann

FHEM auf Raspberry 3
MaxCube (V1.20.04 a-culfw) für HM, MaxCube (V1.20.04 a-culfw) für diverse Max!, NanoCul 433/868, TinyTX-Nachbauten
Multiroom: mehrere Squeezelite-Clients auf Raspberry B+ und LMS auf QNap
Huger WM918 Wetterstation integriert
Tiao-Sprinkler (Open-Sprinkler) integriert