当我的屏幕低于430像素时,我想更改bxslider上的最大幻灯片数。
我可以使用下面的内容,但这似乎有点过分,必须两次声明所有内容。有没有其他人可以想到的方式?
if ( $(window).width() < 430) {
var myslider = $('#my-slider').bxSlider({
...
maxSlides : 1,
});
}
else {
var myslider = $('#my-slider').bxSlider({
...
maxSlides : 4,
});
}
答案 0 :(得分:18)
您可以通过设置maxSlides变量来减少重复次数,而不是重复滑块代码。
var maxSlides,
width = $(window).width();
if (width < 430) {
maxSlides = 1;
} else {
maxSlides = 4;
}
var myslider = $('#my-slider').bxSlider({
...
maxSlides: maxSlides,
});
你可以用ternary operator使它变得更简单,虽然试图过于简洁并不一定有益。
var width = $(window).width();
var myslider = $('#my-slider').bxSlider({
...
maxSlides: (width < 430) ? 1 : 4,
});
答案 1 :(得分:7)
这是一个响应式解决方案,可在您调整窗口大小时动态调整设置:
var slider,
oBxSettings = { /* Your bxSlider settings */ };
function init() {
// Set maxSlides depending on window width
oBxSettings.maxSlides = window.outerWidth < 430 ? 1 : 4;
}
$(document).ready(function() {
init();
// Initial bxSlider setup
slider = $('#my-slider').bxSlider(oBxSettings);
});
$(window).resize(function() {
// Update bxSlider when window crosses 430px breakpoint
if ((window.outerWidth<430 && window.prevWidth>=430)
|| (window.outerWidth>=430 && window.prevWidth<430)) {
init();
slider.reloadSlider(oBxSettings);
}
window.prevWidth = window.outerWidth;
});
答案 2 :(得分:0)
我用jquery这样使用它:
var windowWidth = $(window).width();
var obxSettings = {...};
slider.bxSlider(obxSettings);
$(window).resize(function() {
windowWidth = $(window).width();
if(windowWidth < 768) {
obxSettings.minSlides = 2;
slider.reloadSlider();
}
else {
obxSettings.minSlides = 3;
slider.reloadSlider();
}
});