在最小宽度处禁用 React 光滑滑块
Disable React slick slider at Min width
我试图在 min-width: 768px 处禁用 react 滑块,但 react slick 滑块似乎只支持 max-width。我在 slick 设置中使用 responsive
属性 并且根据文档,这需要一个断点以及该断点的设置。然而,断点是最大宽度而不是最小宽度,我试图在断点 768px 处使用 'unslick' 禁用轮播。有没有一种方法可以禁用 min-width: 768 而不是 max-width 的轮播?
var settings = {
dots: true,
infinite: true,
repsponsive: [
{
breakpoint: 768,
settings: 'unslick'
}
],
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
我检查了 source code for react-slick 并找到了下面显示的代码部分;
if (this.props.responsive) {
var breakpoints = this.props.responsive.map(breakpt => breakpt.breakpoint);
breakpoints.sort((x, y) => x - y);
breakpoints.forEach((breakpoint, index) => {
var bQuery;
if (index === 0) {
bQuery = json2mq({minWidth: 0, maxWidth: breakpoint});
} else {
bQuery = json2mq({minWidth: breakpoints[index-1], maxWidth: breakpoint});
}
this.media(bQuery, () => {
this.setState({breakpoint: breakpoint});
});
});
// Register media query for full screen. Need to support resize from small to large
var query = json2mq({minWidth: breakpoints.slice(-1)[0]});
this.media(query, () => {
this.setState({breakpoint: null});
});
}
我从这段代码中了解到 react-slick 实际上同时使用了两个 min-width and max-width
但是在对给定的断点进行排序之后,第一个总是会得到 min-width: 0
。
所以这是您可以做的事情。它有点乱,但我认为它可以完成工作。
const settings = {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1,
responsive: [
{
breakpoint: 768,
},
{
breakpoint: 10000, // a unrealistically big number to cover up greatest screen resolution
settings: 'unslick'
}
]
};
此代码的作用是创建 2 个媒体条目,
@media only screen and (min-width: 0px) and (max-width: 768px) { ... } // empty
@media only screen and (min-width: 768px) and (max-width: 10000px) { ... } // disables slick
希望对您有所帮助。
我试图在 min-width: 768px 处禁用 react 滑块,但 react slick 滑块似乎只支持 max-width。我在 slick 设置中使用 responsive
属性 并且根据文档,这需要一个断点以及该断点的设置。然而,断点是最大宽度而不是最小宽度,我试图在断点 768px 处使用 'unslick' 禁用轮播。有没有一种方法可以禁用 min-width: 768 而不是 max-width 的轮播?
var settings = {
dots: true,
infinite: true,
repsponsive: [
{
breakpoint: 768,
settings: 'unslick'
}
],
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
我检查了 source code for react-slick 并找到了下面显示的代码部分;
if (this.props.responsive) {
var breakpoints = this.props.responsive.map(breakpt => breakpt.breakpoint);
breakpoints.sort((x, y) => x - y);
breakpoints.forEach((breakpoint, index) => {
var bQuery;
if (index === 0) {
bQuery = json2mq({minWidth: 0, maxWidth: breakpoint});
} else {
bQuery = json2mq({minWidth: breakpoints[index-1], maxWidth: breakpoint});
}
this.media(bQuery, () => {
this.setState({breakpoint: breakpoint});
});
});
// Register media query for full screen. Need to support resize from small to large
var query = json2mq({minWidth: breakpoints.slice(-1)[0]});
this.media(query, () => {
this.setState({breakpoint: null});
});
}
我从这段代码中了解到 react-slick 实际上同时使用了两个 min-width and max-width
但是在对给定的断点进行排序之后,第一个总是会得到 min-width: 0
。
所以这是您可以做的事情。它有点乱,但我认为它可以完成工作。
const settings = {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1,
responsive: [
{
breakpoint: 768,
},
{
breakpoint: 10000, // a unrealistically big number to cover up greatest screen resolution
settings: 'unslick'
}
]
};
此代码的作用是创建 2 个媒体条目,
@media only screen and (min-width: 0px) and (max-width: 768px) { ... } // empty
@media only screen and (min-width: 768px) and (max-width: 10000px) { ... } // disables slick
希望对您有所帮助。