This project is now deprecated.
Recently Barba v2 was released which has all of the features I added to v1, plus many more, and is maintained.
This project will no longer (not that I had been anyway) be maintained.
Barba can be found here
This is an extension to Barba.
It adds a custom transition which makes it really easy to make elements transition on and off the page.
- Barba
You should install this package via NPM.
npm install barba-transitions
Initialise Barba as you normally would and the transitions will automatically kick in.
Then, define your css transitions in your stylesheet and pass that name as the value of
the data-transition
attribute on each element that you wish to animate.
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Index</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Home</h1>
</header>
<div id="barba-wrapper">
<div class="barba-container">
<section class="all-posts" data-transition="fadeIn">
This is the main page content
</section>
</div>
</div>
<script src="barba.min.js" type="text/javascript"></script>
<script src="barba.transitions.min.js" type="text/javascript"></script>
<script src="main.js" type="text/javascript"></script>
</body>
</html>
@keyframes fadeIn {
0% {opacity: 0;}
100% {opacity: 1;}
}
window.onload = function() {
Barba.Pjax.start();
}
To change the transition length it couldn't be simpler.
Define Barba.transitionLength
in miliseconds in your JS, after Barba
is initialised and all transitions will use the newly defined time.
Barba.transitionLength = 1000;
This would set the transition length to be 1 second.