JSFiddle - React, Tailwind, and code Playground
by rich_harris
HTML
<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>
<main></main>
<script id='template' type='text/ractive'>
{{#each list:i}}
<p>{{this}}</p>
{{/each}}
<div class='block'>
{{#each list:i}}
<p outro='pause'>{{this}}</p>
{{/each}}
</div>
</script>
CSS
body {
font-family: 'Helvetica Neue', arial, sans-serif;
font-weight: 200;
color: #353535;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 200;
}
JavaScript
Ractive.transitions.pause = function ( t ) {
t.animateStyle({ color: 'red' }, { duration: 1 })
.then( t.complete );
};
var ractive = new Ractive({
el: 'main',
template: '#template',
data: { list: [ 'a', 'b', 'c', 'd' ] }
});
setTimeout( function () {
ractive.set( 'list', [ 'a', 'b', 'c' ] ).then( function () {
console.log( 'done' );
});
// This breaks everything - it prevents the transition
// on the <p> elements inside from ever completing, and
// in the process prevents other nodes from detaching
ractive.el.querySelector( '.block' ).innerHTML = '';
}, 1000 );