Skip to content

Instantly share code, notes, and snippets.

@marekalgoud
marekalgoud / finalinit.js
Created September 26, 2019 10:00
final barba init
import barba from '@barba/core'
import animin from './anims/in'
import animout from './anims/out'
barba.hooks.before(() => {
barba.wrapper.classList.add('is-animating')
})
barba.hooks.after(() => {
barba.wrapper.classList.remove('is-animating')
@marekalgoud
marekalgoud / lazyloading.js
Created September 26, 2019 09:54
lazyloading script
import(/* webpackChunkName: "article" */ `./pages/article`).then(module => {
try {
const Article = module.default
const article = new Article()
article.init()
} catch (err) {
console.error(err)
}
})
@marekalgoud
marekalgoud / dynamic-lazyloading.js
Created September 26, 2019 09:49
dynamic lazyloading with webpack
import(/* webpackChunkName: "[request]" */ `./pages/${className}`).then(module => {
try {
const DynamicClass = module.default
const page = new DynamicClass()
page.init()
} catch (err) {
console.error(err)
}
})
@marekalgoud
marekalgoud / transitionhook.js
Created September 26, 2019 09:32
barba transition hooks
beforeLeave: ({ current }) => {
barba.wrapper.style.height = current.container.offsetHeight + 'px'
},
beforeEnter: ({ current, next }) => {
barba.wrapper.style.height = next.container.offsetHeight + 'px'
current.container.style.zIndex = -1
next.container.style.zIndex = 1
}
@marekalgoud
marekalgoud / style.scss
Last active September 26, 2019 09:23
style scss
[data-barba='wrapper'] {
position: relative;
}
[data-barba='container'] {
will-change: transform;
.is-animating > & {
position: absolute;
width: 100%;
@marekalgoud
marekalgoud / barba.js
Created September 26, 2019 09:17
barba hooks
barba.hooks.before(() => {
barba.wrapper.classList.add('is-animating')
})
barba.hooks.after(() => {
barba.wrapper.classList.remove('is-animating')
})
@marekalgoud
marekalgoud / in.js
Last active September 26, 2019 08:39
anim in
import anime from 'animejs/lib/anime.es.js'
export default (targets) => {
targets.style.opacity = 0
targets.style.transform = 'translateY(100px)'
const translateY = '0'
const opacity = 1
const anim = anime.timeline({
easing: 'easeInOutSine',
@marekalgoud
marekalgoud / base.twig
Last active September 26, 2019 08:51
page layout
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{{ pageTitle }}</title>
</head>
<body class="{{ pageClass }}">
@marekalgoud
marekalgoud / index.js
Last active September 26, 2019 08:24
Barba.js init
import barba from '@barba/core'
import animin from './anims/in'
import animout from './anims/out'
barba.init({
transitions: [
{
leave: ({ current }) => {