Карусель Bootstrap полностью отображает правую часть окна браузера

Я пытаюсь заставить карусель ускоренного просмотра полностью отображать правую часть окна браузера.

Для этого поля карусели должны быть изменены, чтобы оставить изображение в центре правой стороны с максимальной шириной (5/12 страницы) или максимальной высотой (высота окна браузера) в зависимости от соотношения сторон изображения. .

Вот пример того, что я пытаюсь получить:

введите здесь описание изображения

Вот скрипт с тем, как он работает в настоящее время: https://jsfiddle.net/v71c8udo/7/

А вот текущий HTML-код:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://bootswatch.com/bower_components/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <style>
      .carousel-inner > .item > img,
      .carousel-inner > .item > a > img {
        width: 100%;
        height: 100%;
        margin: auto;
      }
    </style>
  </head>
  <body>
    <div class="navbar navbar-default navbar-fixed-top ">
      <div class="container">
        <div class="navbar-header">
          <a href="#" class="navbar-brand">website</a>
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
            <span class="icon-bar"></span>
          </button>
        </div>
      </div>
    </div>
    <div class="col-sm-offset-7 col-sm-5" style="margin-right:0px;padding-right:0px; height:100vh;">
      <br>
      <div id="myCarousel" class="carousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
          <li data-target="#myCarousel" data-slide-to="1"></li>
          <li data-target="#myCarousel" data-slide-to="2"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
          <div class="item active">
            <img src="https://culturieuse.files.wordpress.com/2015/02/arearea_by_paul_gauguin-joyfulness-1892.jpg" alt="Chania">
          </div>

          <div class="item">
            <img src="http://uploads2.wikiart.org/images/paul-gauguin/road-in-tahiti-1891.jpg" alt="Chania">
          </div>

          <div class="item">
            <img src="http://www.leboismiroir.fr/wp-content/uploads/Pld-Gauguin.jpg" alt="Flower">
          </div>


          <!-- Left and right controls -->
          <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
          </a>
          <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
          </a>
        </div>
      </div>
    </div>
  </body>
</html>


person michltm    schedule 09.03.2016    source источник
comment
Проблема в том, что высота карусели непостоянна. У меня вопрос: какой должна быть высота карусели? Высота самого высокого слайда/изображения?   -  person Mosh Feu    schedule 09.03.2016
comment
jsfiddle не работает   -  person silviagreen    schedule 09.03.2016
comment
@Mosh Feu: это должна быть высота окна браузера, такая гибкая. Может быть, что-то поиграть с html '100vh'.   -  person michltm    schedule 09.03.2016


Ответы (3)


Вам не хватает чего-то вроде этого:

#myCarousel {
  height:100%;
  padding-top: 150px;
  background-color: gray;
}

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

person Armfoot    schedule 09.03.2016
comment
Единственное, что поля сверху и снизу не имеют точно такого же размера, и на очень больших экранах высота изображения становится больше, чем окно браузера. - person michltm; 09.03.2016

Это сработало для меня, но я не думаю, что это поддерживается IE‹9

.carousel {
position: relative;
top: 50%;
transform: translateY(-50%);
}
person Octav    schedule 09.03.2016
comment
Вы можете добавить: -webkit-transform: translateY(-50%); -ms-преобразование: перевестиY(-50%); - person Octav; 09.03.2016

person    schedule
comment
Присмотревшись ближе к этому решению, оно дает лучшие результаты с точки зрения регулярности для всех размеров экрана: верхнее и нижнее поля имеют одинаковый размер. - person michltm; 09.03.2016