2016-03-04 3 views
0

Я работаю над плагином JXuery для слайдера bx. Я настраиваю adaptiveHeight: false. Эта конфигурация работает нормально в режиме как горизонтальная. Но, не рабочий режим, как вертикальный и исчезает. что высота ползунка увеличивается и уменьшается на основе изображений слайдера, но я хочу фиксированную высоту. Как решить эту проблему.адаптивная высота не работает в режиме вертикального и затухания в плагине bxslider

Fiddle

моя конфигурация:

$('.slider').bxSlider({ 
    adaptiveHeight: false, 
    auto: false, 
    autoControls: false, 
    autoDirection: "", 
    autoHover: false, 
    autoStart: false, 
    captions: false, 
    easing: "linear", 
    hideControlOnEnd: false, 
    infiniteLoop: false, 
    maxSlides: 1, 
    minSlides: 1, 
    mode: "vertical", 
    nextSelector: "#slider-next", 
    nextText: "<img src= style="width:35px;height:35px;"/>", 
    pager: false, 
    pause: false, 
    prevSelector: "#slider-prev", 
    prevText: "<img src= style="width:35pxpx;height:35px;"/>", 
    randomStart: false, 
    slideMargin: 10, 
    slideWidth: 150, 
    speed: 1000, 
    startSlide: 0 
}); 
+0

По умолчанию bxSlider будет принимать на высоте самых высоких слайда и установить его для каждого слайда в дальнейшем. Вам нужно предоставить живую демонстрацию того, что вы уже сделали. Так что если вы скажете, что у вас есть работа, но размер сдвига, то предоставите нам демо-версию – zer00ne

+0

вот Демо-версия: http://jsfiddle.net/w16z3gt0/1/ – kalles

ответ

0

Update

OP выражается необходимость отображения изображений различной высоты ... но хочет фиксированную высоту. Так что я собираю фиксированную высоту ползунка, которая способна отображать изображения с разной высотой в вертикальном потоке. Задача состоит в том, чтобы заставить стрелки управления оставаться в одном месте и иметь возможность настраиваться в соответствии с изменением размера.

Слишком много изменений в CSS, чтобы пройти по каждой из причин, по которым они используются, поэтому мы рассмотрим наиболее важные части и, если возникнут какие-либо дополнительные вопросы, которые могут быть рассмотрены на каждом конкретном случае.

.box { height: 100vh; overflow-y: scroll; } 
    .bx-view-port { height: 100vh; } 

Поскольку большинство цифровых средств массовой информации в мире горизонтально ориентированные, не достаточно мысли была введена в хороший UX с помощью вертикального потока я предполагаю. Единственные свойства высоты в jquery.bxslider.css были для значков и загрузчика. Сгенерированная обертка bx-view-port является основной ссылкой для ширины и высоты, поэтому имейте это в виду, когда ваш bxSlider переходит на 0 высоту после обновления браузера. Добавление обертки для всего слайдера (.box) помогает стабилизировать вертикальные переходы, а также предоставить родительский элемент для следующего добавления, .bx-nav.

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

  1. Добавить эти два варианта в bxSlider JS/JQ:

    prevSelector: '.prev', 
    nextSelector: '.next', 
    
  2. В HTML добавить это под bxSlider элемент:

    <nav class="bx-nav"> 
        <div class="prev"></div> 
        <div class="next"></div> 
    </nav> 
    

Эти шаги позволят установить новый набор элементов управления, которые легче настроить, и стиль. Теперь у вас должно быть 2 якоря: PREV и NEXT.

  1. Добавьте следующие опции bxSlider:

    prevText: "<i class='fa fa-nav fa-fw fa-chevron-circle-left'></i>", 
    nextText: "<i class='fa fa-nav fa-fw fa-chevron-circle-right'></i>", 
    
  2. Затем добавьте этот <link> к </head>:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
    

Теперь эти хромые якоря должны выглядеть так исходные элементы управления. Мы сделали запись строки, которая генерирует <i> (например, метод jQuery, создающий элемент со всеми атрибутами и значениями) и присоединяется к соответствующему элементу - .prev и .next. Плавно выглядящие значки шрифтов являются комплиментами FontAwesome.

Plunker/README.md

Отрывок

<!doctype html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<title>35788901</title> 
 
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=0"/> 
 
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bxslider/4.2.5/jquery.bxslider.css"> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
 
<style> 
 
.box { height: 100vh; overflow-y: scroll; } 
 
.bx-view-port { height: 100vh; } 
 
img { margin: 0 auto; } 
 
.bx-nav { position: absolute; width: 356px; height: 48px; top: calc(50% - 24px); left: calc(50% - 178px); margin: 0 auto; } 
 
.prev, .next { position: absolute; width: 48px; line-height: 48px; z-index: 9999; font-size: 48px; opacity: .4; color: #0FF !important; } 
 
.prev:hover, .next:hover { opacity: 1; color: #00D !important; cursor: pointer;} 
 
.prev { left: 0; } 
 
.next { right: 0; } 
 
</style> 
 
</head> 
 
<body> 
 
<section class="box"> 
 
    <ul class="bxslider"> 
 
    <li> <img src="https://placehold.it/150x150/fff/e00" /> </li> 
 
    <li> <img src="https://placehold.it/300x300/040/fff" /> </li> 
 
    <li> <img src="https://placehold.it/450x150/000/0ff" /> </li> 
 
    <li> <img src="https://placehold.it/300x300/cfc/000" /> </li> 
 
    <li> <img src="https://placehold.it/600x150/040/fff" /> </li> 
 
    <li> <img src="https://placehold.it/300x300/000/fff" /> </li> 
 
    </ul> 
 
    <nav class="bx-nav"> 
 
    <div class="prev"></div> 
 
    <div class="next"></div> 
 
    </nav> 
 
</section> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/bxslider/4.2.5/jquery.bxslider.min.js"></script> 
 
<script> 
 
$(function() { 
 
    var bx = $('.bxslider').bxSlider({ 
 
    mode: 'vertical', 
 
    speed: 500, 
 
    slideMargin: 20, 
 
    infiniteLoop: true, 
 
    slideSelector: 'li', 
 
    pager: false, 
 
    prevSelector: '.prev', 
 
    nextSelector: '.next', 
 
    prevText: "<i class='fa fa-nav fa-fw fa-chevron-circle-left'></i>", 
 
    nextText: "<i class='fa fa-nav fa-fw fa-chevron-circle-right'></i>", 
 
    minSlides: 3, 
 
    moveSlides: 1 
 
    }); 
 
}); 
 
</script> 
 
</body> 
 
</html>



Старый

 
It looks as if a default height is overlooked when using a vertical mode. I have had problems with height under different circumstances but it looks like my case is not the only configuration having troubles controlling height. Here's the additional CSS I applied to tame bxSlider's height jumping. I also set the `min/maxSlides` to 3. It looks as if the carousel is vertical, it doesn't adjust it's slides according to height of viewport. 

Fiddle

+0

Если вы попытаетесь с разной высотой изображения размера слайдер увеличивается и уменьшается на основе изображения (adaptiveHeight: false) @ zer00ne – kalles

+0

@kalles, пожалуйста, просмотрите обновление, сообщите мне, если оно не соответствует требованиям или у вас есть дополнительные вопросы. – zer00ne