13

我创建了 4 个滑块。最初所有 4 个都是隐藏的(显示:无),所以我使用此代码在单击其各自类别时显示相关滑块。

滑块配置。

    touchEnabled: true,
    hideControlOnEnd: true,
    preloadImages: 'all',
    infiniteLoop: false,
    mode: 'horizontal',
    startSlide: 0,
    slideWidth: 300,
    minSlides: 2,
    maxSlides: 3,
    slideMargin: 10,
    pager: false,
    slideSelector: ".isotope-item",
    nextSelector: "#forefoo2_next",
    prevSelector: "#forefoo2_prev",
    nextText: '',
    prevText: '',
    onSliderLoad: function(){
        jQuery(".sliloading").hide();
    },


jQuery(window).ready(function(){
    var slider4 = jQuery('.cat_fore').bxSlider();
    var slider2 = jQuery('#cat_two').bxSlider();
    var slider3 = jQuery('.cat_three').bxSlider();
    var slider1 = jQuery('.cat_one').bxSlider();

    jQuery("#sel_cat a" ).on("click", function(){
        var current     = jQuery(this).attr("slider");
        jQuery(".sliloading").show();

        jQuery(".slider").hide();
        if( current == "cat_one"){
            slider1.reloadSlider(s1config);
        }else if(current == "cat_two"){
            slider2.reloadSlider(s2config);
        }else if(current == "cat_three"){
            slider3.reloadSlider(s3config);
        }else if(current == "cat_fore"){
            slider4.reloadSlider(s4config);
        }
   }
});

问题是当滑块少于 20 张幻灯片时,它会将最后一张幻灯片显示为第一张幻灯片的幻灯片计数反转。

对于幻灯片 20 或更多然后 20 它工作正常。我还尝试了此链接上列出的不同解决方案,但对我没有任何帮助。
我试图在小提琴上复制同样的例子,它工作正常,但在现场它仍然给出同样的问题

我认为问题出在高度或其他一些 css 元素上,这使得它从最后一张幻灯片开始,因为在小提琴中,视口很小,所以它显示滑块的第一张幻灯片,而且当我们尝试减小视口的大小时浏览器它还以正确的方式显示滑块。

4

8 回答 8

16

我最近也遇到了这个问题。解决方案是您必须将 BxSlider 的实例放在 $(window).load() 事件上,而不是在 $(window).ready() 中,这是一个示例。

$(window).load(function(){
            $('.bxslider').bxSlider({
                pagerCustom: '#bx-pager',
                randomStart: false,
                controls: true,
                auto: true
            });    
        });

请务必注意,一旦您拥有至少 7 张幻灯片,问题就会开始持续存在。

于 2013-12-03T03:35:30.967 回答
11

快速解决方案:

.bx-clone{
   display: none !important;
}

如果您不想丢失无限循环动画:

   onSliderLoad: function() {
      $("YOUR_SLIDER_SELECTOR").css(
         "-webkit-transform", 
         "translate3d(-" + YOUR_SLIDER_WIDTH + "px, 0, 0)"
      );
    }
于 2013-11-13T15:37:54.703 回答
10

这对我来说是一个仅限 chrome 的错误,其中用于从最后一张幻灯片无缝滚动回第一张幻灯片的“克隆幻灯片”将首先显示将实际的第一张幻灯片推开。隐藏克隆幻灯片是一种快速修复,但会破坏无限滚动效果。

下面的解决方案严格使用 CSS 为我修复了它,没有粗糙的 3D 转换 CSS、Jquery 或任何东西......现在可以使用引导程序:

/* BUG FIX FOR CLONE SLIDE FIRST */

.bx-wrapper img {
    max-width: 100%;
    display: inline-block;
}

.bx-viewport li { 
    min-height: 1px; 
    min-width: 1px; 
}

我认为如果您使用 jquery 来显示使用 onSlideBefore 的克隆,则可能会根据您的具体情况进行 CSS 修复。有时它源于 BOOTSTRAP 的图像大小和/或显示样式问题,所以如果您使用的是 BS,肯定有 CSS 修复。一般来说,如果您所有的幻灯片大小相同,请尝试设置图像的高度和宽度、最大高度和宽度以及最小高度和宽度,它可能会修复它。

这不是必需的,但如果这不起作用,请在 bxSlider 初始化选项中尝试 useCSS: false,例如:

$(window).load(function(){
        $('.bxslider').bxSlider({
            pagerCustom: '#bx-pager',
            randomStart: false,
            controls: true,
            auto: true
            useCSS:false
        });    
    });
于 2014-07-08T02:45:44.113 回答
4

你只需要停止循环:

infiniteLoop:false

...并且没有更多的 .bx-clone

http://bxslider.com/options

于 2015-01-22T13:06:25.410 回答
3

正如 OG Sean 所说,这是一个 Chrome 错误。

我遇到了同样的问题,我尝试时唯一需要的是这个 css 代码:

.bx-viewport li { min-height: 1px; min-width: 1px; }
于 2014-10-03T12:12:36.443 回答
0

好的,我不知道为什么,但是当我删除这行“minSlides:2”时,它开始以正确的方式工作。

于 2013-08-22T09:21:55.037 回答
0
<li>
    <img src="_images/xxx.jpg" alt="xxx" width="X" height="X"/>
</li>

在滑块中的图像上设置显式高度和宽度标签为我解决了这个问题,滑块包含 2-5 个图像。

于 2014-02-27T16:13:47.933 回答
0

使用 bxslider 是我一生中最大的错误。

于 2017-12-22T12:38:07.083 回答