我试图找出Flexslider的一个问题,只有当我在Safari Mobile等移动浏览器上测试时才会出现这个问题。
所有< li>容器与最高的< li>具有相同的高度,即使没有足够的内容来证明它们具有相同的高度。
我不知道如何获取此屏幕截图,因为它在桌面浏览器上运行良好,但在移动浏览器上却无法正常工作。这是一个小提琴,显示它在我在桌面浏览器上查看时的预期效果,容器的高度根据内容的大小调整。
这是hml:
<div class="flexslider">
<ul class="slides">
<li>
<img src="http://i.imgur.com/YSVlz2Z.jpg" />
<h2><a href"#">First Link Here</a></h2>
<p>Some text here that could be a message</p>
<a href="#" data-role="button" data-icon="arrow-r" data-iconpos="right">Another Link Here</a>
</li>
<li>
<img src="http://i.imgur.com/YSVlz2Z.jpg" />
<h2><a href"#">Second Link Here</a></h2>
<p>Some text here that could be a message</p>
</li>
<li>
<img src="http://i.imgur.com/YSVlz2Z.jpg" />
<h2><a href"#">Third Link Here</a></h2>
<p>Some text here that could be a message</p>
</li>
</ul>
</div>
这是flexslider的JS:
$('.flexslider').flexslider();
答案 0 :(得分:3)
var evenSliderHeight = function(slideContainer, slideItem) {
var slider_height = 0;
var $slider_slide = $(slideContainer).find(slideItem);
$slider_slide.each(function() {
var __height = $(this).outerHeight(true);
if ( slider_height < __height ) {
slider_height = __height;
}
});
$slider_slide.css('min-height', slider_height);
};
evenSliderHeight('.flexslider-container', '.slide');
答案 1 :(得分:2)
$('.flexslider').flexslider({
after: function(slider){
currHeight = $('.flexslider').find('.slides > li').eq(slider.currentSlide).outerHeight(true);
$('.flexslider').height(currHeight);
}
});
JSFiddle更新:http://jsfiddle.net/CsCyh/14/
答案 2 :(得分:2)
对于在2019/2020年仍然存在此问题的任何人,请在Flexslider docs处查看名为“ smoothHeight”的新属性
我通过将“ smoothHeight”设置为true来解决问题。
$('.sliders').flexslider({
animation: 'slide',
smoothHeight: true,
controlNav: false,
customDirectionNav: $('.js-slider-control button'),
});
答案 3 :(得分:0)
将此添加到调用滑块的脚本中。
animateHeight: false,
例如:
$(window).load(function(){ if ( $('#content-slider-wrap').length == 0 ) return false
$('#content-slider-wrap').flexslider({
animation:"fade",
slideshow: true,
directionNav: true,
animateHeight: false,
controlNav:false ,
........... etc etc
答案 4 :(得分:0)
这是仅CSS解决方案。已针对animation: "slide"
属性进行了测试:
.flexslider .flex-viewport { display: flex; flex-direction: column; }
.flexslider .flex-viewport > ul { display: flex; }
.flexslider .flex-viewport > ul > li { display: flex !important; }
!important
会覆盖flexslider生成为内联样式的display:block;
属性。现在,根据最高的幻灯片,所有面板的高度都相等。