JSFiddle - React, Tailwind, and code Playground

by geekambassador

HTML

<script src="http://www.snorkl.tv/dev/libs/greensock/TweenMax.min.js"></script>
<script src="http://www.snorkl.tv/dev/libs/greensock/plugins/ColorPropsPlugin.min.js"></script>
    <section class="buttons">
        <button type="button" class="fun">fun!</button>
        <button type="button" class="fun-reverse">!nuf</button>
    </section>

    <section class="mast">

        <!-- div.col.col-$*16>figure.front+figure.back -->
        <div class="col col-1">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-2">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-3">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-4">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-5">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-6">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-7">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-8">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-9">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-10">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-11">
            <figure class="front"></figure>
            <figure class="back"></figure>
        </div>
        <div class="col col-12">
            <figure class="front"></figure>
           ...

CSS

/* line 7, ../sass/style.scss */
figure {
  margin: 0; }

/* line 11, ../sass/style.scss */
body {
  background-color: #222; }

/* line 15, ../sass/style.scss */
.mast {
  width: 960px;
  height: 960px;
  margin: auto;
  -webkit-perspective: 900px;
  -moz-perspective: 900px;
  -ms-perspective: 900px;
  -o-perspective: 900px;
  perspective: 900px;
  cursor: pointer; }
  /* line 33, ../sass/style.scss */
  .mast .col {
    width: 6.25%;
    height: 100%;
    float: left;
    position: relative;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;
    pointer-events: none; }
  /* line 46, ../sass/style.scss */
  .mast .front,
  .mast .back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden; }
  /* line 53, ../sass/style.scss */
  .mast .front {
    background-image: url("http://f.cl.ly/items/1w2I0U382k0m1I3e3U2I/earth.jpg"); }
  /* line 57, ../sass/style.scss */
  .mast .back {
    background-image: url("http://f.cl.ly/items/110t1y2N2K3g2h2u2O3E/mars.jpg");
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
    transform: rotateY(180deg); }
  /* line 68, ../sass/style.scss */
  .mast .col-1 .front {
    background-position: 0% 0; }
  /* line 71, ../sass/style.scss */
  .mast .col-1 .back {
    background-position: 100% 0; }
  /* line 68, ../sass/style.scss */
  .mast .col-2 .front {
    background-position: 6.66667% 0; }
  /* line 71, ../sass/style.scss */
  .mast .col-2 .back {
    background-position: 93.33333% 0; }
  /* line 68, ../sass/style.scss */
  .mast .col-3 .front {
    background-position: 13.33333% 0; }
  /* line 71,...

JavaScript

var $cols = $('.col');

var fun = new TimelineLite({
    paused : true,
});

    
fun.timeScale = .2;



    
var delay = -2

fun.append(
        TweenMax.staggerTo( $cols, .5, {
            css : {
            opacity : .2
            }
        }, 0.1 )
    )
    
console.log(fun.duration()); //2.5
    
fun.insert(
        TweenMax.staggerTo( $cols, 1, {
            css : {
                opacity : 1
            }
        }, 0.1), .5
    )



$('.fun').on( 'click', function(){
    fun.play();
} );
$('.fun-reverse').on( 'click', function(){
    fun.reverse();
} );