0
我有以下輪播代碼[fiddle]返回不同數量的項目以基於屏幕大小顯示。在窗口調整大小事件時觸發不同的執行
$(function() {
var mini = 1000;
var big = 1280;
if (window.screen.availWidth < mini) {
$('#carousel1').jsCarousel({ onthumbnailclick: function(src) { load(src); }, autoscroll: true, circular: true, masked: false, itemstodisplay: 3, orientation: 'h' });
}
else {
$('#carousel1').jsCarousel({ onthumbnailclick: function(src) { load(src); }, autoscroll: true, circular: true, masked: false, itemstodisplay: 5, orientation: 'h' });
}
});
我想一個.resize
功能添加到它這樣的項目數量也將在窗口大小調整而改變。我跟着這example,但無法得到它的工作。有人會請告訴我如何添加調整大小功能到我的例子?
我失敗的嘗試(demo):
function screen_resize() {
var h = parseInt(window.innerHeight);
var w = parseInt(window.innerWidth);
if (w <= 800) {
$('#carousel1').jsCarousel({ onthumbnailclick: function(src) { load(src); }, autoscroll: true, circular: true, masked: false, itemstodisplay: 3, orientation: 'h' });
}
else {
$('#carousel1').jsCarousel({ onthumbnailclick: function(src) { load(src); }, autoscroll: true, circular: true, masked: false, itemstodisplay: 5, orientation: 'h' });
}
}
// if window resize call responsive function
$(window).resize(function(e) {
screen_resize();
});
// call responsive function on default :)
$(document).ready(function(e) {
screen_resize();
});
您正在每個調整大小的'#carousel1'元素上重新定義jsCarousel。您只需在DOM準備就緒後初始化插件一次,然後只更新每個調整大小的選項'itemstodisplay'。快速查看插件源,似乎不支持它。 –
通常一個好的插件有銷燬和重新初始化方法,但我不確定你正在使用的那個。這樣,在窗口大小調整時,您可以通過銷燬解除插件並通過re-init重新啓動期望數量的項目。所以,你可能想要尋找另一個插件。 – lshettyl