Skip to content

A small library to make css transitions easier with Barba

Notifications You must be signed in to change notification settings

croxton/barba-transitions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Barba Transitions

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.

Dependencies

  • Barba

Installation

You should install this package via NPM.

npm install barba-transitions

Getting started

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.

Example

HTML

<!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>

CSS

@keyframes fadeIn {
  0% {opacity: 0;}
  100% {opacity: 1;}
}

JS

window.onload = function() {
  Barba.Pjax.start();
}

Setting a custom transition time

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.

Example

Barba.transitionLength = 1000;

This would set the transition length to be 1 second.

About

A small library to make css transitions easier with Barba

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 47.6%
  • JavaScript 45.2%
  • CSS 7.2%