bootstrap модальное окно внутри slick slider

411
28 апреля 2018, 15:11

Использую bootstrap 3.

Есть такой код jsbin:

$('.slider-product').each(function(){ 
  var $this = $(this); 
   
  $this.slick({ 
    slidesToShow: 2, 
    slidesToScroll: 1,                
    dots: false, 
    infinite: true,  
  });  
}); 
 
 
$(window).load(function(){ 
    $('.slider-product').each(function(){ 
        var $this = $(this); 
 
        $this.on('setPosition', function () { 
            $(this).find('.slick-slide').height('auto'); 
            var slickTrack = $(this).find('.slick-track'); 
            var slickTrackHeight = $(slickTrack).height(); 
            $(this).find('.slick-slide').css('height', slickTrackHeight + 'px'); 
        }); 
    });    
   
});
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css'); 
 
 
 
.tab-content>.tab-pane { 
    display: block !important;    
    height: 0 !important;          
    overflow: hidden !important; 
} 
.tab-content > .active { 
    height: auto !important;     
} 
<script src="https://code.jquery.com/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
   
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css" /> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script> 
 
 
  <ul class="slider-filter nav nav-tabs"> 
    <li class="active"> 
      <a href="#popular-1" data-toggle="tab"> 
        1 вкладка 
      </a> 
    </li>       
    <li> 
      <a href="#popular-2" data-toggle="tab"> 
        2 вкладка 
      </a> 
    </li>    
  </ul> 
   
   
<div class="tab-content"> 
  <div id="popular-1" class="tab-pane fade in active">   
    <div class="slider-product"> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          1/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                1/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          2/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                2/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          3/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                3/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
    </div> 
  </div> 
 
  <div id="popular-2" class="tab-pane fade"> 
    <div class="slider-product"> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          1/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                1/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          2/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                2/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
 
      <div class="item"> 
        <a href="#" class="product-buy-click" data-target="#modalClick" data-toggle="modal"> 
          3/ открыть модальное окно 
        </a> 
 
        <div class="order-modal modal fade" id="modalClick" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"> 
          <div class="modal-dialog" role="document"> 
            <div class="modal-content"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
                <i class="fa fa-times" aria-hidden="true"></i> 
              </button>     
              <div class="modal-body"> 
                3/ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus incidunt molestias quo nihil illum perspiciatis tempore! Sed necessitatibus a, eligendi. 
              </div> 
            </div> 
          </div> 
        </div>         
      </div> 
    </div> 
  </div> 
</div>

Есть Бутстраповские табы (вкладки), внутри которых расположен slick слайдер.

В каждом пункте слайдера .slick-slide есть кнпка\ссылка вызова стандартного бутстраповского модального окна + тут же расположены эти модальные окна (именно так и никак иначе, только внтри .slick-slide).

Проблема в том, что окно (хотя и position: fixed) позиционируется неправильно и маска окна перекрывает само окно, закрытие не работает).

Вопрос: Как, при клике на кнопку\ссылку, открыть bootstrap модальное окно, так чтобы оно правильно позиционировалось и работало без изъянов, если и кнопка\ссылка и само модальное окно располагается внутри пункта slick слайдера (внутри каждого .slick-slide)?

Answer 1

У вас проблема с z-index-ами у модального окна он равен 1050, а у подложки 1040. но проблема в том что slick имеет posiion relative и не дает потомкам вылезти выше чем его слой, меняйте z-index slick слайдеру. Еще проблема в том что для перемещения slick слайдер transform и создает локальную систему координат, т.е. ваш fixed теперь отображается относительно slick-track. Вам скорее всего придется выносить модалку из слайдера

READ ALSO
Как лучше сверстать блоки разной высоты на Bootstrap?

Как лучше сверстать блоки разной высоты на Bootstrap?

Прошу прощения за мой дилетантский вопрос:

226
Последняя позиция order в FlexBox?

Последняя позиция order в FlexBox?

В FlexBox можно задать первую позицию order: -1;, но есть-ли универсальный способ указать последнюю позицию?

178
Стилизация checkbox в EDGE

Стилизация checkbox в EDGE

В EDGE у меня все checkbox-ы зелёныеКак это исправить и заменить их на белые?

194
Не получается вывести картинки

Не получается вывести картинки

Не получается вывести картинкуполучил путь'C:/Server/data/htdocs/bwt/public/img/5ae1c68e8fe7e5

201