我已经多次使用flexslider和fancybox,并且都是很棒的插件。另外,这两个工作在我正在做的一个网站上很好,但我现在要描述的问题发生在Flexslider库位于fancybox div内时。我必须指出这是一个响应式网站,因此没有静态宽度,所有宽度都是基于百分比的。fancybox div打开后加载flexslider
起初一切似乎都在起作用。我加载了fancybox和flexslider显示器,因为它的宽度是fancybox容器的50%。但是,如果我将display: none;
添加到需要隐藏div的fancybox div直到它被调用,当fancybox加载flexslider中的所有图像时都很小,尽管flexslider div的宽度是正确的。我假设,因为flexslider加载页面时,它不知道它的宽度是什么。这就是为什么当display: none;
被设置时不会发生这种情况。
我的JavaScript加载这两个插件目前看起来是这样的:
// =FANCYBOX
$(".fancybox").fancybox({
padding : 2,
nextEffect: 'fade',
prevEffect: 'fade',
title: false,
});
// =FLEXSLIDER
$(function(){
if($(".flexslider").length > 0) {
$(".flexslider").addClass("loading");
// Can also be used with $(document).ready()
$(window).load(function() {
$('.flexslider').flexslider({
animation: "slide",
directionNav: false,
slideshowSpeed: 5000,
animationSpeed: 360,
easing: "easeInQuad",
useCSS: false,
start: function(slider){
$('.flexslider').removeClass('loading');
}
});
});
}
});
有谁知道我怎么能强迫flexslider后的fancybox是可见的再初始化?
谢谢你,史蒂夫
感谢,不幸的是它似乎没有工作。我认为父元素上的display none仍然必须折叠div,因此它在加载之前无法修正高度/宽度。 – user1406440