Reputation: 867
I'm trying to create a carousel.I've created the structure, but only want five blocks to appear and then the sixth to appear after arrow click. How do I go about this?
My approach: (adopted from here)
img{
border: 1px solid red;
width: 100px;
height: 100px;
display: block;
}
ul{
display: inline-block;
}
li{
list-style-type: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<!----------->
<!-- CTA 1 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 1</span>
</li>
</ul>
<!----------->
<!-- CTA 2 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 2</span>
</li>
</ul>
<!----------->
<!-- CTA 3 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 3</span>
</li>
</ul>
<!----------->
<!-- CTA 4 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 4</span>
</li>
</ul>
<!----------->
<!-- CTA 5 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 5</span>
</li>
</ul>
<!----------->
<!----------->
<!-- TO APPEAR AFTER CONTROL CLICK -->
<!----------->
<!-- CTA 6 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 6</span>
</li>
</ul>
</div>
</div>
<!--=====================-->
<!--== ON ARROW DISPLAY -==>
<!--=====================-->
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
Currently, as you can see, it displays all six initially. Unsure on what differs between the demo linked and my approach (besides the structure of course).
Upvotes: 0
Views: 185
Reputation: 2575
img{
border: 1px solid red;
width: 100px;
height: 100px;
display: block;
}
ul{
display: inline-block;
}
li{
list-style-type: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<!----------->
<!-- CTA 1 -->
<!----------->
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 1</span>
</li>
</ul>
</div>
<!----------->
<!-- CTA 2 -->
<!----------->
<div class="item">
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 2</span>
</li>
</ul>
<div>
<!----------->
<!-- CTA 3 -->
<!----------->
<div class="item">
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 3</span>
</li>
</ul>
</div>
<!----------->
<!-- CTA 4 -->
<!----------->
<div class="item">
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 4</span>
</li>
</ul>
</div>
<!----------->
<!-- CTA 5 -->
<!----------->
<div class="item">
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 5</span>
</li>
</ul>
</div>
<!----------->
<!----------->
<!-- TO APPEAR AFTER CONTROL CLICK -->
<!----------->
<!-- CTA 6 -->
<!----------->
<div class="item">
<ul class="clearfix">
<li>
<img src="https://picsum.photos/200/200?random"/>
<span>Test 6</span>
</li>
</ul>
</div>
</div>
</div>
<!--=====================-->
<!--== ON ARROW DISPLAY -==>
<!--=====================-->
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
Here all 6 is appearing. What is the problem?
Upvotes: 0
Reputation: 781
that is because you have kept all the images in single <div class="item">
keep them in separate items div, this way :
<div class="item active">cat 1</div>
<div class="item">cat 2</div>
<div class="item">cat 3</div>
<div class="item">cat 4</div>
<div class="item">cat 5</div>
<div class="item">cat 6</div>
img {
border: 1px solid red;
width: 100px;
height: 100px;
display: block;
}
ul {
display: inline-block;
}
li {
list-style-type: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<!----------->
<!-- CTA 1 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 1</span>
</li>
</ul>
</div>
<div class="item">
<!----------->
<!-- CTA 2 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 2</span>
</li>
</ul>
</div>
<div class="item ">
<!----------->
<!-- CTA 3 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 3</span>
</li>
</ul>
</div>
<div class="item ">
<!----------->
<!-- CTA 4 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 4</span>
</li>
</ul>
</div>
<div class="item ">
<!----------->
<!-- CTA 5 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 5</span>
</li>
</ul>
</div>
<div class="item ">
<!----------->
<!----------->
<!-- TO APPEAR AFTER CONTROL CLICK -->
<!----------->
<!-- CTA 6 -->
<!----------->
<ul class="clearfix">
<li>
<img src="" />
<span>Test 6</span>
</li>
</ul>
</div>
</div>
<!--=====================-->
<!--== ON ARROW DISPLAY -==>
<!--=====================-->
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
Upvotes: 1
Reputation: 554
This should work like you intended. Added a div with the class item
.
img{
border: 1px solid red;
width: 100px;
height: 100px;
display: block;
}
ul{
display: inline-block;
}
li{
list-style-type: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<!----------->
<!-- CTA 1 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 1</span>
</li>
</ul>
<!----------->
<!-- CTA 2 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 2</span>
</li>
</ul>
<!----------->
<!-- CTA 3 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 3</span>
</li>
</ul>
<!----------->
<!-- CTA 4 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 4</span>
</li>
</ul>
<!----------->
<!-- CTA 5 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 5</span>
</li>
</ul>
</div>
<div class="item">
<!----------->
<!----------->
<!-- TO APPEAR AFTER CONTROL CLICK -->
<!----------->
<!-- CTA 6 -->
<!----------->
<ul class="clearfix">
<li>
<img src=""/>
<span>Test 6</span>
</li>
</ul>
</div>
</div>
<!--=====================-->
<!--== ON ARROW DISPLAY -==>
<!--=====================-->
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
Upvotes: 0