Synced Owls

Setup

This is an example of using two synced Owl Carousel. This is not out of the box function, rather a demo or even "how to".

  1. $(document).ready(function() {
  2.  
  3. var sync1 = $("#sync1");
  4. var sync2 = $("#sync2");
  5.  
  6. sync1.owlCarousel({
  7. singleItem : true,
  8. slideSpeed : 1000,
  9. navigation: true,
  10. pagination:false,
  11. afterAction : syncPosition
  12. });
  13.  
  14. sync2.owlCarousel({
  15. items : 15,
  16. itemsDesktop : [1199,10],
  17. itemsDesktopSmall : [979,10],
  18. itemsTablet : [768,8],
  19. itemsMobile : [479,4],
  20. pagination:false,
  21. afterInit : function(el){
  22. el.find(".owl-item").eq(0).addClass("synced");
  23. }
  24. });
  25.  
  26. function syncPosition(el){
  27. var current = this.currentItem;
  28. $("#sync2")
  29. .find(".owl-item")
  30. .removeClass("synced")
  31. .eq(current)
  32. .addClass("synced")
  33. if($("#sync2").data("owlCarousel") !== undefined){
  34. center(current)
  35. }
  36. }
  37.  
  38. $("#sync2").on("click", ".owl-item", function(e){
  39. e.preventDefault();
  40. var number = $(this).data("owlItem");
  41. sync1.trigger("owl.goTo",number);
  42. });
  43.  
  44. function center(number){
  45. var sync2visible = sync2.data("owlCarousel").owl.visibleItems;
  46. var num = number;
  47. var found = false;
  48. for(var i in sync2visible){
  49. if(num === sync2visible[i]){
  50. var found = true;
  51. }
  52. }
  53.  
  54. if(found===false){
  55. if(num>sync2visible[sync2visible.length-1]){
  56. sync2.trigger("owl.goTo", num - sync2visible.length+2)
  57. }else{
  58. if(num - 1 === -1){
  59. num = 0;
  60. }
  61. sync2.trigger("owl.goTo", num);
  62. }
  63. } else if(num === sync2visible[sync2visible.length-1]){
  64. sync2.trigger("owl.goTo", sync2visible[1])
  65. } else if(num === sync2visible[0]){
  66. sync2.trigger("owl.goTo", num-1)
  67. }
  68. }
  69.  
  70. });
  1. <div id="sync1" class="owl-carousel">
  2. <div class="item"><h1>1</h1></div>
  3. <div class="item"><h1>2</h1></div>
  4. <div class="item"><h1>3</h1></div>
  5. <div class="item"><h1>4</h1></div>
  6. <div class="item"><h1>5</h1></div>
  7. <div class="item"><h1>6</h1></div>
  8. <div class="item"><h1>7</h1></div>
  9. <div class="item"><h1>8</h1></div>
  10. <div class="item"><h1>9</h1></div>
  11. <div class="item"><h1>10</h1></div>
  12. <div class="item"><h1>11</h1></div>
  13. <div class="item"><h1>12</h1></div>
  14. <div class="item"><h1>13</h1></div>
  15. <div class="item"><h1>14</h1></div>
  16. <div class="item"><h1>15</h1></div>
  17. <div class="item"><h1>16</h1></div>
  18. <div class="item"><h1>17</h1></div>
  19. <div class="item"><h1>18</h1></div>
  20. <div class="item"><h1>19</h1></div>
  21. <div class="item"><h1>20</h1></div>
  22. <div class="item"><h1>21</h1></div>
  23. <div class="item"><h1>22</h1></div>
  24. <div class="item"><h1>23</h1></div>
  25. </div>
  26. <div id="sync2" class="owl-carousel">
  27. <div class="item"><h1>1</h1></div>
  28. <div class="item"><h1>2</h1></div>
  29. <div class="item"><h1>3</h1></div>
  30. <div class="item"><h1>4</h1></div>
  31. <div class="item"><h1>5</h1></div>
  32. <div class="item"><h1>6</h1></div>
  33. <div class="item"><h1>7</h1></div>
  34. <div class="item"><h1>8</h1></div>
  35. <div class="item"><h1>9</h1></div>
  36. <div class="item"><h1>10</h1></div>
  37. <div class="item"><h1>11</h1></div>
  38. <div class="item"><h1>12</h1></div>
  39. <div class="item"><h1>13</h1></div>
  40. <div class="item"><h1>14</h1></div>
  41. <div class="item"><h1>15</h1></div>
  42. <div class="item"><h1>16</h1></div>
  43. <div class="item"><h1>17</h1></div>
  44. <div class="item"><h1>18</h1></div>
  45. <div class="item"><h1>19</h1></div>
  46. <div class="item"><h1>20</h1></div>
  47. <div class="item"><h1>21</h1></div>
  48. <div class="item"><h1>22</h1></div>
  49. <div class="item"><h1>23</h1></div>
  50. </div>
  1. #sync1 .item{
  2. background: #0c83e7;
  3. padding: 80px 0px;
  4. margin: 5px;
  5. color: #FFF;
  6. -webkit-border-radius: 3px;
  7. -moz-border-radius: 3px;
  8. border-radius: 3px;
  9. text-align: center;
  10. }
  11. #sync2 .item{
  12. background: #C9C9C9;
  13. padding: 10px 0px;
  14. margin: 5px;
  15. color: #FFF;
  16. -webkit-border-radius: 3px;
  17. -moz-border-radius: 3px;
  18. border-radius: 3px;
  19. text-align: center;
  20. cursor: pointer;
  21. }
  22. #sync2 .item h1{
  23. font-size: 18px;
  24. }
  25. #sync2 .synced .item{
  26. background: #0c83e7;
  27. }
  28.  

More Demos