Sha256: f8d194ad60c30c0a089a9121468b0159d823295570795dc19db124e26ef0231e

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

var currentPage = 1;

function page(index) {
  if(arguments.length == 1) {
    if(isNaN(index) || index < 1) index = 1;
    if(index > imagePaths.length) index = imagePaths.length;
    
    currentPage = index;
    showCurrentPage();
  }
  else {
    var index = currentPage;
    if(isNaN(index) || index < 1) index = 1;
    return index;
  }
}

function atBottom() {
  return (window.scrollY + window.innerHeight) == document.body.scrollHeight;
}

function initPaginator() {
  document.querySelector("#page-back").addEventListener("click", function(e) {
    e.stopPropagation();
    page(page() - 1);
  });
  document.querySelector("#page-back-10").addEventListener("click", function(e) {
    e.stopPropagation();
    page(page() - 10);
  });
  document.querySelector("#page-next").addEventListener("click", function(e) {
    e.stopPropagation();
    page(page() + 1);
  });
  document.querySelector("#page-next-10").addEventListener("click", function(e) {
    e.stopPropagation();
    page(page() + 10);
  });

  window.addEventListener("keydown", function(event) {
    if(event.keyCode == 39 || ((event.keyCode == 32 || event.keyCode == 13) && atBottom())) {
      event.preventDefault();
      page(page() + 1);
    }
    else if(event.keyCode == 8 || event.keyCode == 37) {
      event.preventDefault();
      page(page() - 1);
    }
  });
}

function showCurrentPage() {
  window.scrollTo(0, 0);
  document.querySelector("#image").src = imagePaths[currentPage - 1];
  if(currentPage < imagePaths.length) (new Image()).src = imagePaths[currentPage];
}

function init() {
  initPaginator();
  showCurrentPage();
}

window.addEventListener("DOMContentLoaded", init);

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
servel-0.1.0 lib/servel/templates/gallery.js