This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
animierte Zeitleiste
#1
Guten Morgen,

die Plattform »eifelkrimi.de« präsentiert nicht nur Bücher und Autoren, sondern auch Filme und TV-Serien, die seit den dreißiger Jahren in der Region gedreht worden sind.
Als besonderer »Eyecatcher« wird eine horizontale Zeitleiste am oberen Seitenrand auf das Jahr der Veröffentlichung bewegt - allerdings bisher noch viel zu schnell.
Beispiel: https://www.wackerberg.de/tatort/maik.php

Die Anweisung  --- document.body.style.scrollBehavior = 'smooth; --- reicht für den gewünschten Effekt offensichtlich nicht aus. Statt dessen würde ich gerne einen Parameter mit der gewünschten Zeitdauer der Bewegung einführen (z.B. 4.000 Millisekunden) und zusätzlich eine Art »ease-in-out« nutzen.

In den bestehenden Code (s.u.) soll diese Funktionalität mit ein paar Zeilen JavaScript/JQuery integriert werden. Dazu fehlen mir als absoluter Anfänger und »Nicht-Programmierer«  jedoch die Fähigkeiten.

<script type="text/javascript">
  let timelineYear = 2018
  let paddingRight = 136
  let delayForScriptToRun = 1000// ms

  const ScrollTimelineYearIntoView = (timelineYear, paddingRight) => {
    document.body.style.scrollBehavior = 'smooth;'
    let timelineDiv = document.getElementsByClassName("timelines-years")[0]
    let targetParent = document.getElementById(timelineYear)
    let targetSpan = targetParent.getElementsByTagName("span")[0];
    let getDistance = function (){ return window.innerWidth - $(targetParent).position().left - paddingRight}

    targetSpan.className="rot"
    
    timelineDiv.scrollBy({
      left: getDistance() < 0 ? -getDistance() : 0,
      behavior: 'smooth'
    });
  }

  $(document).ready(function(){
    setTimeout(ScrollTimelineYearIntoView(timelineYear, paddingRight), delayForScriptToRun);
    console.debug(`ScrollTimelineYearIntoView(${timelineYear}, ${padding}), ${delayForScriptToRun})`)
  });
</script>
Zitieren
#2
Hallo Eifelkrimi,

ich kann mich irren ... aber ich fürchte mit deiner Methode kannst du nur marginal auf die Scrollgeschwindigkeit einwirken, und hauptsächlich nur eine Startverzögerung erreichen. 
Sieh dir mal "marquee scrolldelay" an, vielleicht passt das in dein Konzept... 
https://tutorial.techaltum.com/marquee.html
Als Lösung markieren Zitieren
#3
Vielen Dank für den Hinweis!
Mit "marquee" kann zwar in unterschiedliche Richtungen und Geschwindigkeiten gescrollt werden, aber das Anfahren einer bestimmen ID ist wohl nicht vorgesehen. Außerdem gilt der Befehl für HTML5 als "absolet".
Die Lösung für mein Problem wird also wohl doch aus dem Bereich "JavaScript/JQuery" kommen.
Als Lösung markieren Zitieren
#4
(05.03.2023, 07:19)Eifelkrimi schrieb: Vielen Dank für den Hinweis!
Mit "marquee" kann zwar in unterschiedliche Richtungen und Geschwindigkeiten gescrollt werden, aber das Anfahren einer bestimmen ID ist wohl nicht vorgesehen. Außerdem gilt der Befehl für HTML5 als "absolet".
Die Lösung für mein Problem wird also wohl doch aus dem Bereich "JavaScript/JQuery" kommen.


Hi Eifelkrimi, viele Wege führen nach Rom.

Du kannst Scrolleffekte mithilfe von CSS und/oder JavaScript erstellen. Wenn ich Zeit finde suche ich dir eine Lösung heraus oder bastel dir ein Beispiel
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Als Lösung markieren Zitieren
#5
Prima - ich bin gespannt!
Als Lösung markieren Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste