首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Slick高度响应?

如何使Slick高度响应?
EN

Stack Overflow用户
提问于 2015-10-16 04:07:01
回答 5查看 31.6K关注 0票数 4

我有一个工作的滑块(http://kenwheeler.github.io/slick/),但不能得到高度来响应。无论我将浏览器缩小到什么大小,图像始终保持相同的高度。我以为"mobileFirst“设置可以解决这个问题,但似乎没有。有谁知道如何使滑块和里面的图像具有响应性?下面是我的代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <title>Bailey Miller</title>
        <link rel="stylesheet" href="css/normalize.min.css">
        <link rel="stylesheet" href="css/main.css">
        
        <link rel="stylesheet" type="text/css" href="slick/slick.css"/>
        <link rel="stylesheet" type="text/css" href="slick/slick-theme.css"/>
          <style>
              body{
                  background:black;
              }
          </style>
    </head>
    <body>
		

		<div class="variable-width">
			<div><img src="img/wedding/7.jpg"/></div>
			<div><img src="img/wedding/8.jpg"/></div>
			<div><img src="img/wedding/9.jpg"/></div>
			<div><img src="img/wedding/10.jpg"/></div>
			<div><img src="img/wedding/12.jpg"/></div>
			<div><img src="img/wedding/13.jpg"/></div>
			<div><img src="img/wedding/22.jpg"/></div>
			<div><img src="img/wedding/23.jpg"/></div>
			<div><img src="img/wedding/24.jpg"/></div>
			<div><img src="img/wedding/25.jpg"/></div>
			<div><img src="img/wedding/28.jpg"/></div>
			<div><img src="img/wedding/29.jpg"/></div>
			<div><img src="img/wedding/30.jpg"/></div>
		</div>
        
<!-- jQuery-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        
<!--menu js-->
    <script src="menu/script.js"></script>
        
<!--    slick-->
  <script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
  <script type="text/javascript" src="slick/slick.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        $('.variable-width').slick({
            mobileFirst: true,
          infinite: true,
          speed: 300,
          slidesToShow: 1,
          centerMode: false,
          variableWidth: true,
            focusOnSelect: true
            
        });
    });
  </script>
    
        
    </body>
</html>

和我的CSS:

代码语言:javascript
复制
/* Slider */
.slick-slider
{
    position: relative;
    display: block;

    -moz-box-sizing: border-box;
         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 20px;
    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;

    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;
}

EN

回答 5

Stack Overflow用户

发布于 2017-08-04 09:28:15

如果您知道图像的宽度和高度,请计算图像的纵横比并创建一个变量:

代码语言:javascript
复制
$aspectRatio: width / height;

然后,您可以使用这个简单的解决方案:

代码语言:javascript
复制
.slick-slider{ max-width: calc(100vh * #{$aspectRatio});}

这会使滑块宽度随视口高度而变化,并且滑块高度也会按比例变化。只需根据需要更改值即可。

票数 5
EN

Stack Overflow用户

发布于 2016-04-14 17:07:21

我也有同样的问题-删除可变宽度解决了问题,内容缩放到浏览器窗口。通过响应选项,您可以为不同断点的插件提供不同的选项。因此,您可以为较大的屏幕保留可变宽度,并在需要响应时进行相应的更改。

代码语言:javascript
复制
$(document).ready(function(){
    $('.variable-width').slick({
          mobileFirst: true,
          infinite: true,
          speed: 300,
          slidesToShow: 1,
          centerMode: false,
          variableWidth: false,
          focusOnSelect: true,
          responsive: [
                {
                  breakpoint: 1024,
                  settings: {
                      mobileFirst: true,
                      infinite: true,
                      speed: 300,
                      slidesToShow: 1,
                      centerMode: false,
                      variableWidth: true,
                      focusOnSelect: true

                  }
                }
              ]
    });
});

我在这个问题上找到了以下页面:https://github.com/kenwheeler/slick/issues/1024

票数 1
EN

Stack Overflow用户

发布于 2015-10-16 04:21:32

我不太确定Slick Slider如何做它的标记,但当我使用类似的js插件时,我不得不添加另一个函数来强制浏览器在调整窗口大小时重新绘制图像。

下面是我使用的函数:

代码语言:javascript
复制
var debounceTimeout;
$(window).on("resize", function(){
    clearTimeout(debounceTimeout);
    debounceTimeout = setTimeout(function(){
        $(".ps-current img:visible").css("max-height","99.9%");
        setTimeout(function(){
            $(".ps-current img:visible").removeAttr("style");
        }, 10)
    }, 300);
});

图像的CSS只是:

代码语言:javascript
复制
.slider img {
    max-width: 100%;
    max-height: 100%;
}

请记住,要给元素一个相对高度(以百分比表示的高度),它的父元素必须有一个定义的高度。

要让一个元素占据浏览器的100%空间,该元素及其所有的父元素,直至bodyhtml,都需要在其css样式中包含height:100%;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33157567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档