Igäl
Erfahrenes Mitglied
Werte Tutorialisten
Teilweise werden auf meiner Page sehr lange Texte angezeigt und bislang ist das so gelöst, dass sich der User einen Ast abscrollt. Zwar verschwinden die Designelemente nicht mehr, seit ich einen scrollbaren Container eingefügt habe. Doch wäre es mir lieber, wenn der Text wie in einem Buch gelesen werden kann. Sprich der User "blättert" am Ende der Seite entweder durch Wischen auf kleinen Viewports oder aber mittels diskreten Buttons auf Grösseren.
Nun habe ich das konzeptionelle Problem, dass man dann ja ermitteln müsste, wie viele Character auf den Viewport passen, nur diese Anzahl Characters in den Viewport geladen werden, beim "Blättern" ermittelt werden muss, an welcher Stelle der User gerade ist und wiederum nur so viele Character aus dem darauf folgenden Text in den Viewport geladen werden, dass dieser voll, aber nicht übervoll, ist.
Für das Ermitteln der passenden Anzahl Character habe ich noch kein Rezept, da es eine Unzahl verschiedener Viewports, da Bildschirmgrössen, gibt. Ausserdem noch Usereinstellungen für die Anzeigegrössen und und und. Beim Auslesen des Textes hätte ich auf die SQL-Funktion MID() in Verbindung mit LEN() gesetzt.
Zusätzlich kommt die Problemstellung hinzu, dass ein Wort nicht zerschnitten werden soll. Also dass das erste Wort, das nicht mehr auf die "alte" Seite passt, dann auf der "neuen" Seite dargestellt wird, wenngleich noch "free Character" auf der alten Seite verfügbar wären. Das wäre wahrscheinlich mit RegEx, das auf Leerschläge schaut, irgendwie zu bewerkstelligen.
Weiter möchte der User möglicherweise auf Seite 21 einsteigen, weil er dort mit dem Lesen aufgehört hat. Entsprechend müsste ich dann auch wissen, wie viele Pages es überhaupt gibt. Das hätte ich so gelöst, dass ich die ermittelte Anzahl der Character genommen und durch die Anzahl der anzeigbaren Character geteilt hätte. Aber das weist wieder eine gewisse Unschärfe auf, nämlich dann, wenn ganze - möglicherweise lange - Wörter auf einer neuen Seite angezeigt werden, anstatt teilweise auf der Alten.
Es ist noch zu sagen, dass die Texte kapitelweise in einer Zelle in der Datenbank gespeichert sind. Diese Kapitel können mehrere Tausend Zeichen umfassen.
Falls jemand so etwas schonmal umgesetzt hat oder darüber nachgedacht hat oder masterbrainmässig gerade eine Idee hat, wie das umgesetzt werden könnte, wäre ich dankbarer Abnehmer von Ratschlägen. Wie immer brauche ich keinen fertigen Code (wenn überhaupt Code), sondern Denkanstösse.
Ich bedanke mich bereits vorab manierlich für die geleistete Denkarbeit.
So long
Dä Igäl
Teilweise werden auf meiner Page sehr lange Texte angezeigt und bislang ist das so gelöst, dass sich der User einen Ast abscrollt. Zwar verschwinden die Designelemente nicht mehr, seit ich einen scrollbaren Container eingefügt habe. Doch wäre es mir lieber, wenn der Text wie in einem Buch gelesen werden kann. Sprich der User "blättert" am Ende der Seite entweder durch Wischen auf kleinen Viewports oder aber mittels diskreten Buttons auf Grösseren.
Nun habe ich das konzeptionelle Problem, dass man dann ja ermitteln müsste, wie viele Character auf den Viewport passen, nur diese Anzahl Characters in den Viewport geladen werden, beim "Blättern" ermittelt werden muss, an welcher Stelle der User gerade ist und wiederum nur so viele Character aus dem darauf folgenden Text in den Viewport geladen werden, dass dieser voll, aber nicht übervoll, ist.
Für das Ermitteln der passenden Anzahl Character habe ich noch kein Rezept, da es eine Unzahl verschiedener Viewports, da Bildschirmgrössen, gibt. Ausserdem noch Usereinstellungen für die Anzeigegrössen und und und. Beim Auslesen des Textes hätte ich auf die SQL-Funktion MID() in Verbindung mit LEN() gesetzt.
Zusätzlich kommt die Problemstellung hinzu, dass ein Wort nicht zerschnitten werden soll. Also dass das erste Wort, das nicht mehr auf die "alte" Seite passt, dann auf der "neuen" Seite dargestellt wird, wenngleich noch "free Character" auf der alten Seite verfügbar wären. Das wäre wahrscheinlich mit RegEx, das auf Leerschläge schaut, irgendwie zu bewerkstelligen.
Weiter möchte der User möglicherweise auf Seite 21 einsteigen, weil er dort mit dem Lesen aufgehört hat. Entsprechend müsste ich dann auch wissen, wie viele Pages es überhaupt gibt. Das hätte ich so gelöst, dass ich die ermittelte Anzahl der Character genommen und durch die Anzahl der anzeigbaren Character geteilt hätte. Aber das weist wieder eine gewisse Unschärfe auf, nämlich dann, wenn ganze - möglicherweise lange - Wörter auf einer neuen Seite angezeigt werden, anstatt teilweise auf der Alten.
Es ist noch zu sagen, dass die Texte kapitelweise in einer Zelle in der Datenbank gespeichert sind. Diese Kapitel können mehrere Tausend Zeichen umfassen.
Falls jemand so etwas schonmal umgesetzt hat oder darüber nachgedacht hat oder masterbrainmässig gerade eine Idee hat, wie das umgesetzt werden könnte, wäre ich dankbarer Abnehmer von Ratschlägen. Wie immer brauche ich keinen fertigen Code (wenn überhaupt Code), sondern Denkanstösse.
Ich bedanke mich bereits vorab manierlich für die geleistete Denkarbeit.
So long
Dä Igäl