Artikelbild

LEO Javascript

Javascript für die Slideshow

Die Slideshow selbst wird nur durch CSS animiert. Das Javascript ist nur für das Pausieren zuständig, denn auf Touchscreens gibt es kein :hover, sondern das Event touchstart und touchend mittels Javascript.

(function () {
   var slides = document.querySelectorAll("#onframe figure");
   for (var i=0; i<slides.length; i++) {
      slides[i].ontouchstart =
      slides[i].onmouseover = function () {
         this.classList.add("toggle");
         document.querySelector("#slider").classList.add("toggle");
         for (var j=0; j<slides.length; j++) {
         slides[j].style.animationPlayState = "paused";
      }
   }
   slides[i].ontouchend =
   slides[i].onmouseout = function () {
      this.classList.remove("toggle");
      document.querySelector("#slider").classList.remove("toggle");
      for (var j=0; j<slides.length; j++) {
         slides[j].style.animationPlayState = "running";
      }
   }
}
})();

Smooth Scroll

Ein Klick auf das Maussymbol am Ende der Seite scrollt die Seite nach oben. Das Maussymbol ist fest im Fuß der Seite und erscheint beim Scrollen nicht permanent. Es macht keinen Sinn, den Benutzer nach oben zu holen, bevor er das Ende der Seite erreicht hat.

/** Smooth scroll to top https://gist.github.com/andjosh/6764939 **/
(function () {
var mousebutton = document.querySelector(".mousebutton");

mousebutton.onclick = function () {
   scrollTo(document.body, 0, 850);   
}
    
function scrollTo(element, to, duration) {
   var start = element.scrollTop,
    change = to - start,
   currentTime = 0,
   increment = 20;
        
   var animateScroll = function(){        
      currentTime += increment;
      var val = Math.easeInOutQuad(currentTime, start, change, duration);
      element.scrollTop = val;
      if(currentTime < duration) {
         setTimeout(animateScroll, increment);
      }
   };
   animateScroll();
}

//t = current time
//b = start value
//c = change in value
//d = duration
Math.easeInOutQuad = function (t, b, c, d) {
   t /= d/2;
   if (t < 1) return c/2*t*t + b;
   t--;
   return -c/2 * (t*(t-2) - 1) + b;
};

})();

Breakpoints und Monitorbreite anzeigen

Das Breakpoint-Script ist für die Zeit der Entwicklung gedacht und wird gelöscht, wenn die Seiten online gehen.