JSFiddle - React, Tailwind, and code Playground
by Marco
HTML
<div class="container">
<h1>By midnight the works were in full operation.</h1>
<p>"How are we to get to Leatherhead?" she said.</p>
<p>Down the hill I saw a bevy of hussars ride under the railway bridge; three galloped through the open gates of the Oriental College; two others dismounted, and began running from house to house. The sun, shining through the smoke that drove up from the tops of the trees, seemed blood red, and threw an unfamiliar lurid light upon everything.</p>
<div class="carousel-wrapper">
<ul class="carousel">
<li class="item">
<img src="http://lorempixel.com/g/800/240/sports" alt=""/>
<p class="text">
"But can you sing standing on your head, with a top spinning on your left foot, and a sabre balanced on your right?"
</p>
</li>
<li class="item">
<img src="http://lorempixel.com/g/800/240/food" alt=""/>
<p class="text">
'Of course not,' said the Mock Turtle: 'why, if a fish came to ME, and told me he was going a journey, I should say "With what porpoise?"'
</p>
</li>
<li class="item">
<img src="http://lorempixel.com/g/800/240/people" alt=""/>
<p class="text">
'I want a clean cup,' interrupted the Hatter: 'let's all move one place on.'
</p>
</li>
<li class="item">
<img src="http://lorempixel.com/g/800/240/nature" alt=""/>
<p class="text">
With oars apeak, and paddles down, the sheets of their sails adrift, the three boats now stilly floated, awaiting Moby Dick's reappearance.
</p>
</li>
</ul>
<div class="carousel-nav">
<a href="" class="prev"><</a>
<a href="" class="next">></a>
</div>
</div>
<p>By midnight the works were in full operation. We were clear from the carcase; sail had been made; the wind was freshening; the wild ocean darkness was intense. But that darkness was licked up by the fierce flames, which at intervals forked forth from...
CSS
@import url(http://fonts.googleapis.com/css?family=Open+Sans:300,400);
*{
margin: 0px;
padding: 0px;
}
.container {
font-family: 'Open Sans', sans-serif;
font-size: 14px;
font-weight: 300;
width: 800px;
margin: 10px auto;
}
.container h1 {
color: #ccc;
font-size: 32px;
font-weight: 800;
margin-bottom: 20px;
text-shadow: 1px 1px 0 #999;
}
.container p {
margin: 5px 0;
}
.carousel-wrapper {
position: relative;
width: 800px;
height: 240px;
overflow: hidden;
border-top: 1px dotted #ccc;
border-bottom: 1px dotted #ccc;
margin: 20px 0;
}
.carousel {
position: absolute;
}
.carousel li {
display: block;
float: left;
width: 800px;
height: 240px;
position: relative;
}
.carousel img {
position: absolute;
z-index: 0;
}
.carousel p.text {
position: absolute;
z-index: 1;
font-size: 24px;
width: 340px;
right: 80px;
top: 10px;
color: #ff6347;
background-color: #111111;
background-color: rgba(0,0,0,0.7);
padding: 5px;
}
.carousel-nav a {
display: block;
height: 40px;
width: 30px;
font-size: 24px;
line-height: 1.6;
font-weight: 800;
color: #222;
background-color: rgb(255,99,71);
background-color: rgba(255,99,71,0.7);
text-decoration: none;
padding: 0 4px;
position: absolute;
top: 50%;
margin-top: -20px;
text-align: center;
z-index: 10;
}
.carousel-nav a.prev {
left: 0;
-webkit-border-top-right-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-topright: 4px;
-moz-border-radius-bottomright: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.carousel-nav a.next {
right: 0;
-webkit-border-top-left-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-topleft: 4px;
-moz-border-radius-bottomleft: 4px;
border-top-left-radius: 4px;
border-bottom-left-radius:...
JavaScript
var first = $('.item').first(),
last = $('.item').last(),
itemWidth = first.width(),
carousel = $('.carousel');
console.log(itemWidth)
carousel.prepend(last.clone()).append(first.clone());
carousel.width(itemWidth * $('.item').length);
carousel.css({left: -itemWidth});
//auto start
var giranews = setInterval(function(){move()},5000);
function move(){
carousel.animate({left: '-=' + itemWidth}, 300, function(){
if(Math.abs(carousel.position().left + itemWidth * (carousel.children().length - 1)) < 2) {
carousel.css({left: -itemWidth});
}
});
};
function stopx(){
clearInterval(giranews);
};
function countdown(a) {
var count = a;
timerId = setInterval(function() {
count--;
console.log(count);
if(count == 0) {
clearInterval(timerId);
giranews = setInterval(function(){move()},5000);
};
}, 1000);
};
$('.prev').on('click', function(e){
e.preventDefault();
stopx();
if(typeof timerId!=='undefined'){clearInterval(timerId);countdown(10)}else{countdown(10)}
carousel.animate({left: '+=' + itemWidth}, 300, function(){
if(Math.abs(carousel.position().left) < 2) {
carousel.css({left: -itemWidth * (carousel.children().length - 2)});
}
});
return false;
});
$('.next').on('click', function(e){
e.preventDefault();
stopx();
if(typeof timerId!=='undefined'){clearInterval(timerId);countdown(10)}else{countdown(10)}
carousel.animate({left: '-=' + itemWidth}, 300, function(){
if(Math.abs(carousel.position().left + itemWidth * (carousel.children().length - 1)) < 2) {
carousel.css({left: -itemWidth});
}
});
return false;
});