diff --git a/index.html b/index.html
index c1c7116..5e59874 100644
--- a/index.html
+++ b/index.html
@@ -9,9 +9,14 @@
Presentation Title
+
+ - Point one
+ - Point two
+ - Point three!
+
-
-
+
+
Slide Two
diff --git a/scripts/app.js b/scripts/app.js
index df18f7c..a40dbe0 100644
--- a/scripts/app.js
+++ b/scripts/app.js
@@ -9,15 +9,24 @@
function $(selector) {
return document.querySelector(selector);
}
- function $$(selector){
+ function $$(selector) {
return Array.prototype.slice.call(document.querySelectorAll(selector), 0);
}
- function moveSlides() {
+ function setCurrentSlide(newSlideNumber) {
+ newSlideNumber = Math.max(Math.min(newSlideNumber, slides.length - 1), 0);
+ if (newSlideNumber !== currentSlideNumber) {
+ currentSlideNumber = newSlideNumber;
+ localStorage.setItem('janus-currentSlideNumber', currentSlideNumber);
+ }
slides.forEach(function (item, index, array) {
if (index < currentSlideNumber) {
- item.setAttribute('janus-timeline', 'past');
- } else if (index == currentSlideNumber) {
+ if (slides[index].contains(slides[currentSlideNumber])) {
+ item.setAttribute('janus-timeline', 'present');
+ } else {
+ item.setAttribute('janus-timeline', 'past');
+ }
+ } else if (index === currentSlideNumber) {
item.setAttribute('janus-timeline', 'present');
} else {
item.setAttribute('janus-timeline', 'future');
@@ -25,26 +34,34 @@
});
}
+ var sessionListener = function(e) {
+ if (e.url === window.location.href) {
+ if (e.key === 'janus-currentSlideNumber') {
+ setCurrentSlide(+e.newValue);
+ }
+ }
+ };
+
var init = function() {
- slides = $$('main>section');
+ slides = $$('main>section, [janus-timeline]');
currentSlideNumber = 0;
shortcut.add('F1', function() {
document.body.classList.toggle('show-notes');
});
shortcut.add('Page_down', function() {
- if (currentSlideNumber < slides.length - 1) {
- currentSlideNumber++;
- moveSlides();
- }
+ setCurrentSlide(currentSlideNumber + 1);
});
shortcut.add('Page_up', function() {
- if (currentSlideNumber > 0) {
- currentSlideNumber--;
- moveSlides();
- }
+ setCurrentSlide(currentSlideNumber - 1);
});
- moveSlides();
- }
+ var storedSlideNumber;
+ if (storedSlideNumber = localStorage.getItem('janus-currentSlideNumber')) {
+ setCurrentSlide(storedSlideNumber);
+ } else {
+ setCurrentSlide(0);
+ }
+ };
- document.addEventListener("DOMContentLoaded", init);
+ document.addEventListener('DOMContentLoaded', init);
+ window.addEventListener('storage', sessionListener);
})();
diff --git a/styles/main.css b/styles/main.css
index c6cbbc3..c902662 100644
--- a/styles/main.css
+++ b/styles/main.css
@@ -13,6 +13,10 @@
font-size: calc(2vw + 2em);
}
+li {
+ list-style: none;
+}
+
/* Layout */
body {
display: flex;
@@ -37,7 +41,7 @@ section {
z-index: 1;
display: flex;
flex-direction: column;
- justify-content: space-around;
+ justify-content: center;
width: 100%;
height: 100%;
margin: 0;
@@ -45,15 +49,16 @@ section {
overflow: hidden;
text-align: center;
background-color: black;
- transition: transform ease 1s, opacity ease 1s, visibility step-end 1s;
+ transition: transform ease 0.5s, opacity ease 0.5s, visibility step-end 0.5s;
transform-origin: 50% 50%;
}
[janus-timeline='past'] {
+ transition: transform ease-in 0.5s, opacity ease-in 0.5s, visibility step-end 0.5s;
}
[janus-timeline='present'] {
- transition: transform ease 1s, opacity ease 1s, visibility step-start 1s;
+ transition: transform ease-out 0.5s, opacity ease-out 0.5s, visibility step-start 0.5s;
}
@media only screen {
@@ -88,7 +93,7 @@ section[janus-timeline='future'] {
pointer-events: none;
}
-section.image > img {
+img.cover {
position: absolute;
top: 0;
left: 0;
@@ -98,15 +103,18 @@ section.image > img {
z-index: -1;
}
-body.show-notes section[janus-timeline='present'] + section[janus-timeline='future'] {
+body.show-notes section {
transition: none;
+}
+
+body.show-notes section[janus-timeline='present'] + section[janus-timeline='future'] {
transform: scale(0.25);
transform-origin: bottom right;
top: auto;
left: auto;
bottom: 0.4rem;
right: 0.4rem;
- opacity: 1;
+ opacity: 0.75;
visibility: visible;
outline: 0.1rem solid white;
z-index: 3;