在具有缩放效果 (elevatezoom) 的滑块 (flexslider) 上工作;滑块使用缩略图作为滑块的导航。问题在于变焦镜头的显示。
我花了一段时间来缩小问题的范围:如果 flexslider 动画设置为“滑动”,变焦镜头会正确显示,但如果动画设置为“淡入淡出”,它仍然隐藏在图像后面。
我尝试了一堆不同的 z-index 测试,甚至更改了活动图像的 elevatezoom 文件中的 z-index 代码,但随后显示了错误的图像。
我找到了一个 codepen 并将其分叉以显示问题 - https://codepen.io/anon/pen/jpdOop
现在#slider 的动画设置为滑动并且变焦镜头可见。但如果动画未显示或设置为“淡出”,则变焦镜头会消失在图像后面。
除了 z-index 之外还有什么可能导致这种情况的吗?任何关于在哪里寻找的想法,我很乐意将这些想法写下来,只是出于对原因的想法。
谢谢
HTML
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="flexslider" id="slider">
<ul class="slides">
<li>
<img class="zoom" src="http://placehold.it/350x200/A93226/ffffff" data-zoom-image="http://placehold.it/1901x600/A93226/ffffff">
</li>
<li>
<img class="zoom" src="http://placehold.it/350x200/2980B9/ffffff" data-zoom-image="http://placehold.it/1902x600/2980B9/ffffff">
</li>
<li>
<img class="zoom" src="http://placehold.it/350x200/17A589/ffffff" data-zoom-image="http://placehold.it/1903x600/17A589/ffffff">
</li>
<li>
<img class="zoom" src="http://placehold.it/350x200/F1C40F/ffffff" data-zoom-image="http://placehold.it/1904x600/F1C40F/ffffff">
</li>
<li>
<img class="zoom" src="http://placehold.it/350x200/6C3483/ffffff" data-zoom-image="http://placehold.it/1904x600/6C3483/ffffff">
</li>
</ul>
</div>
<div id="carousel" class="flexslider">
<ul class="slides">
<li>
<img src="http://placehold.it/350x150/A93226/ffffff">
</li>
<li>
<img src="http://placehold.it/350x150/2980B9/ffffff">
</li>
<li>
<img src="http://placehold.it/350x150/17A589/ffffff">
</li>
<li>
<img src="http://placehold.it/350x150/F1C40F/ffffff">
</li>
<li>
<img src="http://placehold.it/350x150/6C3483/ffffff">
</li>
</ul>
</div>
</div>
</div>
</div>
CSS
.flexslider {
margin-bottom: 0 !important;
}
.slider-for div img {
width: 350px;
height: 150px;
}
.slider-nav {
margin-top: 10px;
}
.slider-nav div img {
width: 80%;
height: 50px;
}
.slick-slide {
outline: 0;
}
.flex-direction-nav a:before {
font-size: 30px;
}
#slider ul.flex-direction-nav li a {
display: none !important;
}
JS
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 135,
itemMargin: 5,
asNavFor: '#slider',
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel"
});
$(".zoom").elevateZoom();