如何在光滑滑块中垂直对齐图像

问题描述 投票:0回答:3

我有一个光滑的滑块,我想垂直对齐图像

a
元素。我尝试了高度为 100% 的
vertical-align:middle;
;并尝试了更多,但我还没有找到解决方案。我也尝试过使用
<span class="helper"></span
,就像我在 stackoverflow 上的 this 解决方案中找到的那样(jsfiddle)。希望大家能帮帮我。

我的滑块 HTML 如下:

.slick-slide {
    margin: 0px 20px;
}

.slick-slide img {
    width: 100%;
}

.slick-slider
{
    position: relative;
    display: block;
    box-sizing: border-box;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list
{
    position: relative;
    display: block;
    overflow: hidden;
    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;
    display: block;
}
.slick-track:before,
.slick-track:after
{
    display: table;
    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;
    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;
    height: auto;
    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}
<div class="container-fluid">
  <h2 class="text-center text-secondary">Partners</h2>
   <section class="customer-logos slider">
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2016/08/26/17/33/landscape-1622739_960_720.jpg"></a>
      <a href="#" target="_blank" class="slide"><img src="https://cdn.pixabay.com/photo/2017/02/15/02/52/tree-2067496__340.jpg"></a>
   </section>
</div>

当然包括 jQuery 和 slick.js。 您可以在here看到演示,但带有方形图像。我的图像不是方形的,所以我需要垂直对齐水平滑块中的图像。

提前致谢!

html css
3个回答
1
投票

将其添加到您的 Jquery 中。如果您添加以下代码,它将解决您的问题。 它为所有图像提供了高度和位置。

$( ".slick-slide" ).each(function( index ) { 
   $( this ).css('margin-top',
   ($('.slider').height()-$(this).height())/2+'px' );
 });

0
投票

在你灵活的功能中

$(document).ready(function(){
$('.customer-logos').slick({
    slidesToShow: 6,
    slidesToScroll: 1,
    autoplay: true,
    autoplaySpeed: 1500,
    arrows: false,
    dots: false,
  vertical: true,
    pauseOnHover: false,
    responsive: [{
        breakpoint: 768,
        settings: {
            slidesToShow: 4
        }
    }, {
        breakpoint: 520,
        settings: {
            slidesToShow: 3
        }
    }]
});

});

vertical: true;
<--- only add this. This will set your images vertical


0
投票

apetrakow,slick 的开发者之一,回答了这个问题。

https://github.com/kenwheeler/slick/issues/2351

当您禁用浮动和 分配显示:内联块;给他们。

只需添加这个:

.slick-slide {
    display: inline-block;
    vertical-align: middle;
    float:none;
}
© www.soinside.com 2019 - 2024. All rights reserved.