2016-02-16 2 views
1

Я использую следующий код js, чтобы изменить направление карусели бутстрапа на «ltr» на арабском языке. Мне нужно изменить направление карусели на «ltr», но следующий код js не работает должным образом.Как изменить направление карусели бутстрапа

Есть ли кто-нибудь, кто отладит эту проблему.

JQuery

var theLanguage = $('html').attr('lang'); 
if(theLanguage == 'en') { 

    $('.carousel').carousel({ 
     direction:'left', 
    }); 
} 

else{ 

    $('.carousel').carousel({ 
     direction:'right', 
    }) 
} 
+0

Есть ли кто-нибудь, у кого есть навыки, чтобы изменить направление начальной загрузки каруселью «LTR» на арабском языке и «РТЛ» на английском языке –

+0

надеюсь, что это поможет, [Twitter Bootstrap Carousel элементы цикла справа налево (RTL) reverseed] (http://stackoverflow.com/questions/16877562/twitter-bootstrap-carousel-cycle-items-right-to-left-rtl-reversed) –

+0

для определения языка браузера: [link] (http: // stackoverflow.com/a/18317523/5393271) – sTx

ответ

1

Переопределелив функцию цикла вы можете сделать это назвать пред вместо следующего на каждом цикле.

Take a look at my working example here.

$(document).ready(function() { 
    $('.carousel').each(function(){ 

     // find carousel 
     $(this).carousel(); 

     var carousel = $(this).data('bs.carousel'); 

     // pause the cycle 
     carousel.pause(); 

     // At first, reverse the order of the items in the carousel because we're moving backwards 
     $(this).find('> .carousel-inner > .item:not(:first-child)').each(function() { 
      $(this).prependTo(this.parentNode); 
     }); 

     // Override the bootstrap carousel prototype function, adding a different one won't work 
     carousel.cycle = function (e) { 
      if (!e) this.paused = false 
      if (this.interval) clearInterval(this.interval); 
      this.options.interval 
      && !this.paused 
      && (this.interval = setInterval($.proxy(this.prev, this), this.options.interval)) 
      return this; 
     }; 

     // begin the cycle again 
     carousel.cycle(); 
    }); 
}); 
+0

У меня возникает соблазн предложить расширение карусели вместо того, чтобы просто переопределить его метод цикла. Вы могли бы просто создать «ReversibleCarousel», например, и предоставить дополнительный метод, который сделал то же самое, что и ваше переопределение, но оставляет обычный метод «цикл» для последующих вызовов. – Jeremy

Смежные вопросы