Так я искал к решению для следующего вопроса:Offseting изображения по вертикали на карусели
Бутстрап карусельного способен расширяться изображение, чтобы соответствовать с контейнера. Это все прекрасно и денди. Проблема возникает, когда у вас есть изображения с разной высотой.
Карусель расширит высоту контейнера, чтобы поместить изображение, которое может быть исправлено с:
.container.banner .carousel-inner {
height:500px;
}
Теперь вопрос приходит, когда я пытаюсь компенсировать изображение таким образом, вы можете видеть середину вместо вершина. Я имею в виду, так как все изображения будут иметь разную высоту, мне нужно будет переместить что-то внутри тега <img>
в начало.
Я нашел некоторых людей, которые описывают использование фонового изображения, но ради этого сообщения им хочется держаться подальше от этой возможности.
so tl; dr: Как сместить изображение X в вертикальной плоскости внутри карусели.
вот мой код: HTML:
<div class="container banner">
<div id="myCarousel" class="carousel slide">
<div class="carousel-inner">
<div class="active item">
<img src="img/carousel/Carousel.jpg" alt="">
</div>
<div class="item">
<img src="img/carousel/Carousel (2).jpg" alt="">
</div>
<div class="item">
<img src="img/carousel/Carousel (3).jpg" alt="">
</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel"
data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel"
data-slide="next">›</a>
</div>
</div>
Css
.container.banner .carousel-inner {
height:500px;
}
.container.banner .carousel-inner img{
/*something to move the image*/
/*top:5px; This doesnt work dynamically, percentage doesnt react*/
}
EDIT:
Ну, если вы сделаете следующее:
.container.banner .carousel-inner .item{
position:relative;
width:100%;
bottom: 47%;
}
.container.banner .carousel-inner .item img{
width:100%;
}
Вы получаете что-то вроде решения, но! в зависимости от изображения он может переходить к большому или к малому. В идеале центр изображения должен находиться в середине карусели. И здесь лежит мой текущий вопрос ...
Изменить 2: Ответ
Так следующее удастся несколько компенсировать изображение достаточно, чтобы казаться центрируется по вертикали.
<script type="text/javascript">
$(document).ready(function() {
$(".container.banner .carousel-inner .item").each(function(index) {
$(this).css("margin-top",-(($(this).height())/4) + 'px');
}
)});
</script>
Добавление этого к концу HTML позволит объекта «по центру» вертикально на карусели, независимо от высоты изображения могли бы иметь. Также не забудьте установить ширину тега <img>
на 100% в соответствии с исходным сообщением.
и окончательный комментарий: Приобретите решение @bleuscyther для решения.
Спасибо за ответ :) вопрос у меня есть с помощью этого метода является то, что вы в конечном итоге с белыми коробок на стороны. Я пытался выполнить перемещение только изображения, так что с остатком остается 100%, но середина выровнена с серединой карусели. Несмотря на то, что это возможное решение, оно не совсем подходит для решения, которое я ищу. – Caribenz
Я не могу заставить его работать ... все, что я получаю, это смещение изображения слева на 50% ... я мог бы сделать что-то неправильно. но проверьте это '.carousel-inner .item { \t наверх: 0%; \t левый: 25%; \t высота: 50%; \t ширина: 100%; \t margin: -15% 0 0 -25%; } \t . Carousel-internal .item img { \t ширина: 100%; } ' Ему несколько удается центрировать большинство изображений, но разворачивается анимация карусели. – Caribenz
Итак, вам не хватало круглых скобок: 3 ... Я взял вас на JavaScript и просто установил, чтобы он переместил верхнюю границу поля на 25%, и ему несколько удалось сохранить его почти по центру :) плохо отредактируйте мое сообщение, чтобы подумать об этом. Во всяком случае, храбрый вам гений Декстера. – Caribenz