我正在为台式机和平板电脑视图构建响应式设计。在这个设计中,我使用一个或多个带有jQuery Cycle2的幻灯片构建。此幻灯片包含桌面 3 个滑块中的对象和平板电脑版本中的 2 个。
我的方法:我正在检查窗口调整大小事件,解开所有循环标题,将新标题包装在给定数量的元素周围,然后重新启动循环插件。
我的问题:一切正常,直到我尝试重新启动循环插件。如果没有任何失败或其他东西,它就无法正常工作。所以只是重新初始化似乎是问题所在。
我的代码:
//function to fire the resize event when its done
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$(window).resize(function() {
delay(function(){
if( window.innerWidth <= 979 ){
resizeWrapper( 2 );
}
}, 500);
});
//function for delete wrappers and wrap new ones based on a given number
function resizeWrapper( numberOfItems ){
$( '.productsItem' ).unwrap();
var $set_latestProductsCycle = $( '#latestProductsCycle' ).children();
for( var i=0, len = $set_latestProductsCycle.length; i < len; i+=numberOfItems ){
$set_latestProductsCycle.slice( i, i+numberOfItems ).wrapAll( '<div class="popularProductsWrapper"/>' );
}
$( '#latestProductsCycle' ).cycle({
fx: 'scrollHorz',
prev: '#latestProductsButtonLeft',
next: '#latestProductsButtonRight',
timeout: 0,
caption: '.popularProductsWrapper'
});
}
感谢帮助。