nav/template stuff

This commit is contained in:
Adam Bradley
2013-08-25 22:54:18 -05:00
parent ae871c1613
commit a0ceba83d5
12 changed files with 254 additions and 246 deletions

View File

@ -1,18 +1,41 @@
(function(window, document, framework) {
function transitionBegin(e) {
function initTransition(e) {
var data = e.detail.data;
displayTransition(data);
}
var activePageElement = document.getElementById(framework.activePageId);
if(activePageElement) {
// No animation. Nothing fancy here, just display none to block
function displayTransition(data) {
// build a new main element to hold the new data
var newMainElement = document.createElement("main");
newMainElement.innerHTML = data.main;
activePageElement.parentNode.removeChild(activePageElement);
}
var oldMainElement = document.querySelector("main");
oldMainElement.className += " hide remove-element";
insertPageIntoDom(newMainElement, oldMainElement, data);
history.pushState({}, data.title, data.url);
framework.trigger("pageview");
framework.trigger("pageremove");
}
// insert the new main element before the old main element
function insertPageIntoDom(newMainElement, oldMainElement, data) {
oldMainElement.parentNode.insertBefore(newMainElement, oldMainElement);
// inform the framework that a new page has been added to the DOM
framework.trigger("pagecreate", {
id: data.id,
url: data.url,
title: data.title
});
}
framework.on("pagetransition", transitionBegin);
framework.on("pageloaded", initTransition);
})(this, document, FM = this.FM || {});