Here's the transition.css and the script.js that will make the html work. (you still need to download elastislide)
transition.css
Code:
#page {
position: relative;
}
/*fade in out*/
#page > div {
display:none;
width: 100%;
}
#page > div.current {
display: block;
}
.in, .out {
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-duration: 300ms;
}
@-webkit-keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
.fade.in {
-webkit-animation-name: fade-in;
z-index: 10;
}
.fade.out {
z-index: 0;
}
.show.in {
z-index: 10;
-webkit-animation-name: fade-in;
-webkit-animation-duration: 10ms; }
.show.out {
z-index: 0;
}
/* Push in/out */
@-webkit-keyframes inFromRight {
from { -webkit-transform: translateX(100%); }
to { -webkit-transform: translateX(0); }
}
.push.in {
-webkit-transform: translateX(0);
-o-transform: translateX(0);
-webkit-animation-name: inFromRight;
}
@-webkit-keyframes outToLeft {
from { -webkit-transform: translateX(0); }
to { -webkit-transform: translateX(-100%); }
}
.push.out {
-webkit-transform: translateX(-100%);
-o-transform: translateX(-100%);
-webkit-animation-name: outToLeft;
}
@-webkit-keyframes inFromLeft {
from { -webkit-transform: translateX(-100%); }
to { -webkit-transform: translateX(0); }
}
.push.in.reverse {
-o-transform: translateX(0);
-webkit-animation-name: inFromLeft;
}
@-webkit-keyframes outToRight {
from { -webkit-transform: translateX(0); }
to { -webkit-transform: translateX(100%); }
}
.push.out.reverse {
-o-transform: translateX(100%);
-webkit-animation-name: outToRight;
}
script.js:
Code:
var pageState = {};
$(document).ready(function(){
//ELASTISLIDE
$('#carousel').elastislide({
imageW : 80,
minItems : 3,
border : 0
});
//SLIDE PAGE
$("#signUp, #signIn").click(function(e){
e.preventDefault();
changePage("#pageSearch","push");
});
//BACK
$(".back").live("click",function(e){
e.preventDefault();
window.history.back();
});
});//END ready
window.addEventListener("popstate", function(event) {
if(!event.state){
return;
}
// Transition back - but in reverse.
transition(
event.state.page,
event.state.transition,
!event.state.reverse
);
pageState = {
state: {
page: event.state.page,
transition: event.state.transition,
reverse: event.state.reverse
},
title: "",
url: event.state.page
};
}, false);
function changePage(page, type, reverse) {
// Store the transition with the state
if(pageState.url){
// Update the previous transition to be the NEXT transition
pageState.state.transition = type;
window.history.replaceState(
pageState.state,
pageState.title,
pageState.url);
}
// Keep the state details for next time!
pageState = {
state: {
page: page,
transition: type,
reverse: reverse
},
title: "",
url: page
};
window.history.pushState(pageState.state, pageState.title, pageState.url);
// Do the real transition
transition(page, type, reverse);
}
function transition(toPage, type, reverse){
if(toPage) {
// Set the current icon
$("#tabBar").attr("className", toPage.slice(1));
}
var toPage = $(toPage),
fromPage = $("#page .current"),
reverse = reverse ? "reverse" : "";
toPage.find(".back").toggle(true);
if(toPage.hasClass("current") || toPage === fromPage) {
return;
};
// For non-animatey browsers
if(!("WebKitTransitionEvent" in window)){
toPage.addClass("current");
fromPage.removeClass("current");
return;
}
toPage
.addClass("current " + type + " in " + reverse)
.one("webkitAnimationEnd", function(){
fromPage.removeClass("current " + type + " out " + reverse);
toPage.removeClass(type + " in " + reverse);
});
fromPage.addClass(type + " out " + reverse);
}
Bookmarks