Reputation: 4842
I am implementing carousel through plain javascript (use no plugin). I want to set prev and next button to control slide image.
var firstval = 0;
function Carousel() {
firstval += 2;
parent = document.getElementById('container-carousel');
parent.style.left = "-" + firstval + "px";
if (!(firstval % 150)) {
setTimeout(Carousel, 3000);
firstval = 0;
var firstChild = parent.firstElementChild;
parent.appendChild(firstChild);
parent.style.left= 0;
return;
}
runCarousel = setTimeout(Carousel, 10);
}
Carousel();
#wrapper-carousel {
position: relative;
width: 450px;
height: 150px;
margin: 0 auto;
overflow: hidden;
}
#container-carousel {
position: absolute;
width: 450px;
height: 150px;
}
.child {
width: 150px;
height: 150px;
padding-top: 35px;
float: left;
text-align: center;
font-size: 60px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="wrapper-carousel">
<div id="container-carousel">
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0018904_50_red_roses_in_vase_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
</div>
<a class="left" href="#wrapper-carousel" style="font-size:100px;z-index:3000;">‹</a>
<a class="right" href="#wrapper-carousel" style="font-size:100px;z-index:3000">›</a>
</div>
I want to add simply button to control this carousel. I am not using any plugin and any framework carousel.
JsFiddle: https://jsfiddle.net/varunPes/wzkLjh8s/21/
Upvotes: 5
Views: 2807
Reputation: 4842
Carousel without Plugin.
var firstval = 0;
var runSlider;
function Carousel() {
clearTimeout(runSlider);
firstval += 2;
parent = document.getElementById('container-carousel');
parent.style.left = "-" + firstval + "px";
if (!(firstval % 130)) {
setTimeout(Carousel, 3000);
firstval = 0;
var firstChild = parent.firstElementChild;
parent.appendChild(firstChild);
parent.style.left= 0;
return;
}
runCarousel = setTimeout(Carousel, 10);
}
Carousel();
function leftClick(){
firstval += 2;
parent = document.getElementById('container-carousel');
parent.style.left = "-" + firstval + "px";
if (!(firstval % 130)) {
firstval = 0;
var firstChild = parent.firstElementChild;
parent.appendChild(firstChild);
parent.style.left= 0;
return;
}
runSlider = setTimeout(leftClick, 10);
}
function rightClick(){
firstval += 2;
parent = document.getElementById('container-carousel');
parent.style.left = firstval + "px";
if (!(firstval % 130)) {
firstval = 0;
var firstChild = parent.firstElementChild;
parent.appendChild(firstChild);
parent.style.left= 0;
return;
}
runSlider = setTimeout(rightClick, 10);
}
#wrapper-carousel {
position: relative;
width: 450px;
height: 150px;
margin: 0 auto;
overflow: hidden;
display:flex;
}
#main-carousel {
position: relative;
width: 450px;
height: 150px;
overflow:hidden;
}
#container-carousel {
position: absolute;
width: 450px;
height: 150px;
}
.child {
width: 130px;
height: 150px;
padding-top: 35px;
float: left;
text-align: center;
font-size: 60px;
}
<div id="wrapper-carousel">
<a class="left" href="#wrapper-carousel" style="font-size:100px;z-index:3000;" onclick="leftClick()">‹</a>
<div id="main-carousel">
<div id="container-carousel">
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0018904_50_red_roses_in_vase_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
</div></div>
<a class="right" href="#wrapper-carousel" style="font-size:100px;z-index:3000" onclick="rightClick()">›</a>
</div>
Carousel with plain javascript.
Upvotes: 2
Reputation: 554
Understood that you want css fix to be done
<div id="wrapper-carousel">
<div id="container-carousel">
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0018904_50_red_roses_in_vase_320.jpeg"> </div>
<div class="child"><img width="100" src="https://d2z4fd79oscvvx.cloudfront.net/0020232_chocolate_cream_gateaux_cake_320.jpeg"> </div>
</div>
<a class="left" href="#wrapper-carousel" style="font-size: 100px;z-index: 3050;float: left;position: relative;background: #F3F5F6;top:15px">‹</a>
<a class="right" href="#wrapper-carousel" style="font-size: 100px;z-index: 3050;float: right;position: relative;background: #F3F5F6;top:15px">›</a>
</div>
Upvotes: 1