使用Flexslider的选择属性跳过某些幻灯片DOM降序(Use Flexslider's

2019-10-21 03:24发布

为什么我不能有Flexslider的“选择”属性才能正常工作目标是不是其他的DOM订单后非常一个幻灯片时?

基本上,我发现,针对.testA的工作目标而.testB.testC ,或.testD失败

<ul class="slides">

    <li class="testA testB"><img/></li>
    <li class="testA testC"><img/></li>
    <li class="testB testD"><img/></li>
    <li class="testC testD"><img/></li>

</ul>

这里失败实际上意味着它在第一次显示正常,但在缩略图导航转盘的最后一张幻灯片点击时,会滚动到“无”(白色背景)...

这里是的jsfiddle ,这是缩略图滑块官方样片执行的副本(链接封闭在小提琴)到我添加类和自定义选择。 要检查的各种定位选项,你可能想注释标记添加到当前选择的参数在JS窗口并从以下删除它,无论是#slider#carousel的div。

Answer 1:

这个问题正在发生,因为L.164在Flexslider target = $slide.index();

这里jQuery的指数函数负责决定该flexslider导航到合适的目标。 为了更好地理解和解决这个问题,让我们来看看指数函数的不同调用 -

  1. 如果没有参数被传递给所述的.index()的方法,所述返回值是表示所述第一元素的jQuery对象相对于其兄弟元素中的位置的整数。

  2. 如果选择字符串作为参数传递,的.index()返回一个整数,指示所述第一元件的jQuery对象相对于由选择器相匹配的元素内的位置。

现在,在您的情况下,例如,如果第一和第四图像被选择/可见光在总共4,然后按照在flexslider索引函数的当前调用,返回的索引值是0和3作为其在仍在寻找不是在过滤/匹配列表由于该flexslider导航错误地图像和原始列表。 在这种情况下,正确的价值观显然是0和1,这就是为什么这个问题是永远存在的第一个两页。

因此,要解决这个问题,您需要使用索引功能的第二次调用在自定义选择的情况下。 更换Flexslider的L.164在默认flexslider js文件下面将解决发出─

    target = $slide.index("#carousel " + slider.slides.selector);


文章来源: Use Flexslider's selector property to skip some slides in DOM descending order