我有一个工作的滑块(http://kenwheeler.github.io/slick/),但不能得到高度来响应。无论我将浏览器缩小到什么大小,图像始终保持相同的高度。我以为"mobileFirst“设置可以解决这个问题,但似乎没有。有谁知道如何使滑块和里面的图像具有响应性?下面是我的代码:
<!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:
/* 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;
}
发布于 2017-08-04 09:28:15
如果您知道图像的宽度和高度,请计算图像的纵横比并创建一个变量:
$aspectRatio: width / height;然后,您可以使用这个简单的解决方案:
.slick-slider{ max-width: calc(100vh * #{$aspectRatio});}这会使滑块宽度随视口高度而变化,并且滑块高度也会按比例变化。只需根据需要更改值即可。
发布于 2016-04-14 17:07:21
我也有同样的问题-删除可变宽度解决了问题,内容缩放到浏览器窗口。通过响应选项,您可以为不同断点的插件提供不同的选项。因此,您可以为较大的屏幕保留可变宽度,并在需要响应时进行相应的更改。
$(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
发布于 2015-10-16 04:21:32
我不太确定Slick Slider如何做它的标记,但当我使用类似的js插件时,我不得不添加另一个函数来强制浏览器在调整窗口大小时重新绘制图像。
下面是我使用的函数:
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只是:
.slider img {
max-width: 100%;
max-height: 100%;
}请记住,要给元素一个相对高度(以百分比表示的高度),它的父元素必须有一个定义的高度。
要让一个元素占据浏览器的100%空间,该元素及其所有的父元素,直至body和html,都需要在其css样式中包含height:100%;。
https://stackoverflow.com/questions/33157567
复制相似问题