app/js/index.js in servel-0.23.0 vs app/js/index.js in servel-0.24.0
- old
+ new
@@ -1,24 +1,77 @@
"use strict";
var Index = (function() {
+ function galleryVisible() {
+ return document.body.classList.contains("gallery");
+ }
+
+ function listingVisible() {
+ return document.body.classList.contains("listing");
+ }
+
function jumpListing() {
document.body.classList.remove("gallery");
document.body.classList.add("listing");
}
function jumpGallery() {
document.body.classList.remove("listing");
document.body.classList.add("gallery");
}
+ function jumpScroll() {
+ if(galleryVisible()) {
+ jumpListing();
+ window.scrollTo(0, 0);
+ }
+ else {
+ jumpGallery();
+ window.scrollTo(0, document.body.scrollHeight);
+ }
+ }
+
+ function atTop() {
+ return window.scrollY == 0;
+ }
+
+ function bottomScrollDown(event) {
+ return galleryVisible() && atBottom() && event.deltaY > 0;
+ }
+
+ function topScrollUp(event) {
+ return listingVisible() && atTop() && event.deltaY < 0;
+ }
+
+ function initEvents() {
+ var scrollSize = 0;
+
+ window.addEventListener("wheel", function(event) {
+ if(bottomScrollDown(event) || topScrollUp(event)) {
+ scrollSize += Math.abs(event.deltaY);
+
+ if(scrollSize >= 1500) {
+ scrollSize = 0;
+ jumpScroll();
+ }
+ }
+ else {
+ scrollSize = 0;
+ }
+ });
+ }
+
function init() {
- if(document.body.classList.contains("has-gallery")) jumpGallery();
+ if((Entries.media().length / Entries.all().length) >= 0.5) jumpGallery();
else jumpListing();
+
+ initEvents();
}
return {
init: init,
+ galleryVisible: galleryVisible,
+ listingVisible: listingVisible,
jumpListing: jumpListing,
jumpGallery: jumpGallery
};
})();
\ No newline at end of file