JSFiddle - React, Tailwind, and code Playground

by secretgspot

HTML

<div class="banner-page-wrap">
<div class="banner-wrap">
    <div class="fazzel-logo">FAZZEL.ME</div>
    
<div id="gallery">
<a href="#" class="show">
<img src="http://i.imgur.com/uJUKuh.jpg" alt="Flowing Rock" title="" alt="" rel="Share, connect, and collaborate on fashion-related topics."/>
</a>
<a href="#">
<img src="http://i.imgur.com/lFDJXh.jpg" alt="Grass Blades" title="" alt="" rel="Share looks, clothes, shoes, and accessories from your virtual closet."/>
</a>
<a href="#">
<img src="http://i.imgur.com/djpy3h.jpg" alt="Ladybug" title="" alt="" rel="Form fashion communities by connecting with friends and creating groups."/>
</a>
<a href="#">
<img src="http://i.imgur.com/x3SsPh.jpg" alt="Lightning" title="" alt="" rel="Come, check it out. It's fun!"/>
</a>
<a href="#">
<img src="http://i.imgur.com/2HiFeh.jpg" alt="Lotus" title="" alt="" rel="<h3>Sign up now by registering or just use Facebook Connect to create your account. Join the Community!"/>
</a>
<div class="caption"><div class="content"></div></div>
</div>
    
</div>
</div>

CSS

.banner-page-wrap {
 display: block;
 width: 100%;
background-color: #999999;
background-image: -webkit-repeating-linear-gradient(-30deg, rgba(255,255,255,.1), rgba(255,255,255,.1) 1px, transparent 1px, transparent 60px), -webkit-repeating-linear-gradient(30deg, rgba(255,255,255,.1), rgba(255,255,255,.1) 1px, transparent 1px, transparent 60px), -webkit-linear-gradient(30deg, rgba(0,0,0,.1) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.1) 75%, rgba(0,0,0,.1)), -webkit-linear-gradient(-30deg, rgba(0,0,0,.1) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.1) 75%, rgba(0,0,0,.1));
background-size: 70px 120px;
    text-align: center;
}
.banner-wrap {
 display: inline-block;
 font-family: "arial", serif;
 position: relative;
 margin: 0;
 padding: 0;
 
}
.banner-wrap .fazzel-logo {
display: block;
width: 142px;
height: 34px;
padding: 6px;
background: #ffffff url(http://www.fazzle.me/b/images/faszel-logo.png);
background-position: center center;
background-repeat: no-repeat;
text-indent: -9999px;
position: absolute;
top: 32px;
left: 32px;
z-index: 9999;
}

#gallery{position:relative;height:300px; width: 1100px; margin: 0 auto;}
#gallery a{position:absolute; display: inline-block;}
#gallery a img{border:none;}
#gallery a.show{z-index:500}
#gallery .caption{
    z-index:600;
    background-color:#000; 
    color:#ffffff; 
    font-size: 24px;
    text-align: center;
    padding:0;
    width:100%;
    min-height: 40px;
    position:absolute;
    bottom:32px;}
#gallery .caption .content{margin:5px}
#gallery .caption .content h3{margin:0;padding:0;color:#1DCCEF;}

JavaScript

$(document).ready(function() {

    //Execute the slideShow
    slideShow();

});

function slideShow() {

    //Set the opacity of all images to 0
    $('#gallery a').css({
        opacity: 0.0
    });

    //Get the first image and display it (set it to full opacity)
    $('#gallery a:first').css({
        opacity: 1.0
    });

    //Set the caption background to semi-transparent
    $('#gallery .caption').css({
        opacity: 0.7
    });

    //Resize the width of the caption according to the image width
    $('#gallery .caption').css({
        width: $('#gallery a').find('img').css('width')
    });

    //Get the caption of the first image from REL attribute and display it
    $('#gallery .content').html($('#gallery a:first').find('img').attr('rel')).animate({
        opacity: 0.7
    }, 400);

    //Call the gallery function to run the slideshow, 6000 = change to next image after 6 seconds
    setInterval('gallery()', 6000);

}

function gallery() {

    //if no IMGs have the show class, grab the first image
    var current = ($('#gallery a.show') ? $('#gallery a.show') : $('#gallery a:first'));

    //Get next image, if it reached the end of the slideshow, rotate it back to the first image
    var next = ((current.next().length) ? ((current.next().hasClass('caption')) ? $('#gallery a:first') : current.next()) : $('#gallery a:first'));

    //Get next image caption
    var caption = next.find('img').attr('rel');

    //Set the fade in effect for the next image, show class has higher z-index
    next.css({
        opacity: 0.0
    }).addClass('show').animate({
        opacity: 1.0
    }, 1000);

    //Hide the current image
    current.animate({
        opacity: 0.0
    }, 1000).removeClass('show');

    //Set the opacity to 0 and height to 1px
    $('#gallery .caption').animate({
        opacity: 0.0
    }, {
        queue: false,
        duration: 50
    }).animate({
        height: '1px'
    }, {
        queue: true,
        duration: 300
    });

   ...