11

I'm using UI Bootstrap carousel, but it displays only one slide - http://plnkr.co/edit/Pt56PpQ9fjw6Q0nNF9sU?p=preview.
How to display images this way?

img1 - img2 - img3
then
img2 - img3 - img4 
then
img3 -img4 - img5
then
img4 - img5 - img6
then
img5 - img6 - img1

(like in the this carousel http://coolcarousels.frebsite.nl/c/58/)

2 Answers 2

12

You can use the $index inside the ng-repeat to create additional images and add the next two images.

http://plnkr.co/edit/oVRYCfaMeRW5a54nzmem?p=preview

 <carousel interval="myInterval">
  <slide ng-repeat="slide in slides" active="slide.active">
    <div class="" style="width:600px;margin:auto;">
    <div >
    <img ng-src="{{slide.image}}" width="200px" style="float:left;">
    </div>
    <div >
    <img ng-src="{{slides[getSecondIndex($index+1)].image}}" width="200px" style="float:left;" >
    </div>
     <div >
    <img ng-src="{{slides[getSecondIndex($index+2)].image}}" width="200px" style="float:left;" >
    </div>
    </div>
  </slide>
</carousel>

Code to get the rotating images

$scope.getSecondIndex = function(index)
  {
    if(index-slides.length>=0)
      return index-slides.length;
    else
      return index;
  }
Sign up to request clarification or add additional context in comments.

7 Comments

I've already tried it. The problem is that {{slides[$index+1].image}} and {{slides[$index+2].image}} are empty at the end of slider. For instance, if I have 4 images in $scope.slides, it will display them like this: img1 -img2 - img3 and then img4 - empty - empty. But I want it to show img1 - img2 - img3 ,then img4 - img1 - img2, then img1 - img2 - img3 and so on.
Thanks, it works. But still it's a little bit different from what I want. Is it possible to make it display images like in this slider coolcarousels.frebsite.nl/c/58?
Kathir,thank you so much! I've changed my slider a little bit, and now everything works perfectly well! =))
@Kathir I am getting problem in angular 2. Any example you have.
This answer does not work properly. The animation is wrong, it does an animation like it was offsetting of 3 but it actually offsets the images by 1.
|
0

I am using ng-repeat and converting to image,Here is my code but not converting

<carousel interval="myInterval">
    <slide ng-repeat="rc in RequirementConsultanctDetails" active="slide.active">

        <div class="" style="width:600px;margin:auto;" ng-show="rc.photo!=null">
            <div>
                <img ng-src="data:image/jpeg;base64,{{rc.photo}}" width="200px" style="float:left;">               
            </div>
            <div>                 
                <img ng-src="{{RequirementConsultanctDetails[getSecondIndex($index+1)].photo}}" width="200px" style="float:left;">                  
            </div>
            <div>                 
                <img ng-src="{{RequirementConsultanctDetails[getSecondIndex($index+2)].photo}}" width="200px" style="float:left;">                   
            </div>
        </div>
    </slide>
</carousel> 

1 Comment

Is this an answer or a question?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.