齐正在尝试重新加载滑块,以便有一个完全响应的布局。要做到这一点,我需要重新加载滑块!主要问题是滑块因为重新加载而改变。所以每次我调整大小时,它都从第一张幻灯片开始。
有人能指出我的解决方案,不让这种跳转的幻灯片重新加载/调整大小?
噩梦!http://jsfiddle.net/j3hgA/17/
// initiates responsive slide gallery
var settings = function () {
var settings1 = {
pager: 'false',
minSlides: 1,
maxSlides: 1,
startSlide: 1,
moveSlides: 1,
onSlideBefore:
function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject - 1).addClass('active');
},
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject + 1).addClass('active');
},
onSliderLoad: function (currentSlideHtmlObject) {
$('#carousel').removeClass('settings2');
$('#carousel').css('display', 'block').addClass('settings1');
$('#carousel').fadeIn('slow');
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject + 1).addClass('active');
$('.bx-controls').hover(
function () {
$('#carousel li a figure').addClass("hover").end();
},
function () {
$('#carousel li a figure').removeClass("hover").end();
});
}
};
var settings2 = {
pager: 'true',
minSlides: 1,
maxSlides: 3,
startSlide: 0,
moveSlides: 1,
onSlideBefore: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject - 1).addClass('active');
},
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject + 1).addClass('active');
},
onSliderLoad: function (currentSlideHtmlObject) {
$('#carousel').removeClass('settings1');
$('#carousel').css('display', 'block').addClass('settings2');
$('#carousel').fadeIn('slow');
$('#carousel > li.active').removeClass('active');
$('#carousel > li').eq(currentSlideHtmlObject + 1).addClass('active');
$('.bx-controls').hover(
function () {
$('#carousel li a figure').addClass("hover").end();
},
function () {
$('#carousel li a figure').removeClass("hover").end();
});
}
};
return ($(window).width() < 1600) ? settings1 : settings2;
}
var mySlider;
function tourLandingScript() {
mySlider.reloadSlider(settings());
}
mySlider = $('#carousel').bxSlider(settings());
$(window).resize(tourLandingScript);发布于 2014-02-25 17:05:08
您可以使用getCurrentSlide()存储当前的幻灯片编号,并将其用作启动startSlide。
现在,getCurrentSlide()方法只能在bxSlider对象上调用。因此,必须在bxSlider初始化之后调用它,否则它将给出一个undefined值。这就是早些时候发生的事情。因此,我继续修改了一些代码,以创建这个工作示例。
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="jquery.bxslider.min.js"></script>
<!-- bxSlider CSS file -->
<link href="jquery.bxslider.css" rel="stylesheet" />
<script>
$(document).ready(function(){
var startnum=0,mySlider, settings1 = {
pager:true,
startSlide: 0,
auto:false,
useCSS:false,
onSlideBefore:function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {},
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {},
onSliderLoad: function (currentSlideHtmlObject) {}
}, settings2 = {
pager: false,
startSlide: 0,
auto:false,
useCSS:false,
onSlideBefore:function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {},
onSlideAfter: function (currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {},
onSliderLoad: function (currentSlideHtmlObject) {}
};
function settings() {return ($(window).width() < 1200) ? settings1:settings2;}
mySlider=$('.bxslider').bxSlider(settings());
function tourLandingScript() {
//alert(settings() +" "+ mySlider.getCurrentSlide());
mySlider.reloadSlider($.extend(settings(),{startSlide:mySlider.getCurrentSlide()}));
}
$(window).resize(tourLandingScript);
});
</script>
</head>
<body>
<ul class="bxslider" >
<li><img src="http://www.learningrx.com/images/cognitive-definition.jpg"/></li>
<li><img src="http://designshack.co.uk/wp-content/uploads/multibkg-3.jpg" /></li>
<li><img src="http://designshack.co.uk/wp-content/uploads/multibkg-2.jpg" /></li>
<li><img src="http://designshack.co.uk/wp-content/uploads/multibkg-4.jpg" /></li>
</ul>
</body>
</html>PS:
useCSS:false传递给bxSlider对象,否则您可能会看到一些随机行为。tourLandingScript()中注释行的注释,以验证values.Also注意,寻呼机在一个设置中打开,而在另一个设置中关闭。https://stackoverflow.com/questions/22016929
复制相似问题