view js/ff-herdict-preso.js @ 0:542617bbab09

Origination.
author Atul Varma <varmaa@toolness.com>
date Thu, 04 Feb 2010 13:40:48 -0800
parents
children c590046d502c
line wrap: on
line source


$(window).load(
  function() {
    var slides = [];
    var audio = $("audio#main").get(0);

    $("#slides .slide").each(
      function() {
        var rawTimestamp = $(this).attr("data-at");
        var timestamp = parseFloat(rawTimestamp);
        if (isNaN(timestamp))
          throw new Error("bad 'data-at' attribute: " + rawTimestamp);
        slides.push({timestamp: timestamp, element: this});
      });

    function findSlideElementForTime(timestamp) {
      var bestElement;

      for (var i = 0; i < slides.length; i++) {
        var slide = slides[i];
        if (slide.timestamp < timestamp)
          bestElement = slide.element;
      }

      return bestElement;
    }

    function maybeChangeSlide() {
      var element = findSlideElementForTime(audio.currentTime);
      if (element && !$(element).hasClass("visible")) {
        $("#slides .visible").removeClass("visible");
        $(element).addClass("visible");
      }
    }

    audio.addEventListener("timeupdate", maybeChangeSlide, false);
  });