我已经多次使用 flexslider 和 fancybox,它们都是很棒的插件。另外,这两种方法在我正在做的网站上都很好用,但我现在要描述的问题发生在将 flexslider 画廊放置在 fancybox div 内时。我必须指出这是一个响应式网站,所以没有静态宽度,所有宽度都是基于百分比的。
起初,一切似乎都在工作。我加载了fancybox 和flexslider 显示器,它的宽度是fancybox 容器的50%。但是,如果我添加display: none;
到它需要隐藏 div 直到调用它的 fancybox div 中,当 fancybox 加载 flexslider 中的所有图像时,尽管 flexslider div 的宽度是正确的,但它很小。我假设因为 flexslider 在页面加载时加载它不知道它的宽度是多少。这就是为什么在设置时不会发生这种情况display: none;
。
我加载 2 个插件的 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');
}
});
});
}
});
有谁知道在fancybox可见后如何强制flexslider再次初始化?
谢谢,史蒂夫