Bxslider НЕ реагирует, когда слайды обернуты внутри плавающего элемента

После тестирования различных чувствительных слайдеров jquery я решил пойти с bxslider. Я потерялся сейчас из-за проблемы, которую я не знаю, как ее решить. Я хочу, чтобы мой bxslider (версия 4.1) находился в правой части моей страницы

HTML

<div id="about">
    <h2>My Title</h2>
    <p>...Some Text...</p>
</div>

<div id="slideshow">    
    <ul class="bxslider">
       <li><img src="img/slide_1.jpg"></li>
       <li><img src="img/slide_2.jpg"></li>
       <li><img src="img/slide_3.jpg"></li>
       <li><img src="img/slide_4.jpg"></li>
    </ul>
</div>

CSS

#about{
    width:400px; 
    float:left;
}
#slideshow{
    max-width:500px;
    float:left;   /* IF I REMOVE THIS LINE, SLIDER IS WORKING CORRECTLY - RESPONSIVE */
}

JS:

$(document).ready(function() {                  
    $('.bxslider').bxSlider({
      controls: false,
      auto: true
    }); 
});

Если я добавлю float: left to #slideshow, произойдет странная вещь, все изображения будут загружены маленькими большими пальцами. Очевидно, что у bxslider нет информации о размерах изображения. Если я дам ширину и высоту ul.bxslider о первом элементе, то он работает, но опять же нет resposivness (слайды не масштабируются)

Боковая проблема:

Мои изображения ширины 500 пикселей, если я даю #slideshow width = 500px, тогда я также теряю чувствительность. Вот почему я использую: max-width: 500px.

  • Браузер: хром,
  • Картинки имеют одинаковый формат (500x356) JPG
  • Последняя версия стабильного jquery: 10.1 Последняя версия bxslider: 4.1
  • Протестировано на небольшом созданном сайте только с этими двумя элементами, плавающими (около и слайд-шоу)

Ответ 1

У меня была такая же проблема, однако она не делала ничего реагирующего независимо от того, какой размер/область просмотра и т.д.

Мне нравится bxSlider, поэтому я некоторое время искал источник, и обнаружил, что это проблема css. Вы должны добавить:

.bx-wrapper img{
    display:block;
    max-width: 100%;
}

и это сработало для меня. Я надеюсь, что это исправило это для вас.

Примечание: это может быть исправлено в другой версии.

Ответ 2

В моем случае это произошло из-за сжатой версии js "jquery.bxslider.min.js", когда я использовал несжатый файл, с которым он работал. Ползунок реагирует на несжатый файл, поэтому сжатие должно было что-то испортить.

Ответ 3

Та же проблема я вижу с другими плагинами слайдера, теряя их отзывчивость, когда они обернуты внутри плавающего элемента. Решение, в моем случае, заключалось в том, чтобы добавить:

@media screen and (max-width: 600px) {
    #slideshow {
        float:none;
    }
}

Итак, где-то в ваших стилях вы размещали элемент, который содержит слайды, но когда вы просматриваете менее 600 пикселей, нет необходимости в том, чтобы ползунок поддерживался с правой стороны (из-за меньшей ширины), удаляя поплавок, верните отзывчивость назад.

Ответ 4

CSS:

.bx-wrapper img {
 display:block;
 max-width: 100%;
 height:auto;
}

Ответ 5

У меня было несколько лет назад аналогичная проблема с bxslider и не знаю, как решить,

мой sugesstion использует elastislider ссылка

он работает для меня с большими изображениями и без проблем с отзывчивым дизайном.

его легко реализовать, и вы можете изменить стиль в .css файлах, как вы хотите

Ответ 6

У меня тоже была проблема, и я решил это, установив начальную очень большую ширину на слайде li элементов слайдера.

bxSlider автоматически установит соответствующее значение для слайдов.

li {
  width: 10000px; // inital width, bxSlider sets its own
  display: block;
}
li img {
  max-width: 100%;
}