owl 轮播中的克隆项目

Cloned items in owl carousel

在构建轮播时,我意识到 owl 添加了克隆的重复项目。我的 owl 配置如下所示。我该如何阻止这种情况发生。

owlDfe.owlCarousel({
            loop: false,
                        autoWidth:false,
                        nav:false,
                        responsiveClass:true,
                        responsive:{
                            0:{
                                items:sizes.mobile_portrait
                            },
                            568:{
                              items:sizes.mobile_landscape
                            },
                            768:{
                              items:sizes.ipad
                            },
                            800:{
                                items:sizes.desktop
                            },
                            1000:{
                                items:sizes.desktop,
                            }
                        }
          });

我遇到了这个问题 - 我发现将循环选项设置为 false 为我解决了这个问题。

jQuery('.owl-carousel2').owlCarousel({
    loop:false,
    margin:10,
    nav:true,
    mouseDrag:false,
    responsive:{
        0:{
            items:1
        },
        600:{
            items:3
        },
        1000:{
            items:3
        }
    }
})

         });

使循环为 false 并且它不会创建克隆项目

在我的例子中,我发现,当我添加 items: 4,但项目数量少于此数量时,它会复制副本。

所以,我一直在努力解决这个克隆问题,将点击事件传递给克隆的幻灯片....

最终为我解决的是设置这两个配置值:

loop: false,

rewind: true

这将允许轮播仍然循环但不会重复幻灯片。

所有这些答案都解决了根本问题,但是你不能使用循环:(

我能够通过根据需要更新数据来保留循环和单击行为,因此 owl 永远不需要为我克隆元素。

var toClone = Object.keys(owlConfig.responsive).length - slides;
if(toClone > 0) {
    slides= [...slides, ...slides.splice(0, toClone)];
}
// initialize carousel here

准备好解决这个问题:

如果您想设置 loop:true 以防超过特定数量的项目(在我的情况下,我在屏幕上使用 5 个项目,可滚动项目总数为 15 个)

loop: ( $('.owl-carousel .items').length > 5 )

如果项目少于 6 个,上述解决方案将不会 运行 循环,而如果项目超过 5 个,将自动启用循环。

这解决了我的问题,我希望这对你也有帮助。感谢您提出这个问题并享受这段代码:)

设置循环:假
在我的例子中,我将 loop: true 传递给每个响应项目,即使你传递 loop: false 也会创建克隆项目。所以也删除

$('.owl-carousel1').owlCarousel({
    loop:false,
    margin: 10,
    nav: true,
    navText:[
        prevIcon,
        nextIcon
    ],
    responsive: {
        0: {
            items: 1,               
            loop:true
            ---------
        },
        576: {
            items: 2,               
            loop:true
            ---------
        },
        768: {
            items: 3,               
            loop:true
            ---------
        },
        992: {
            items: 4,               
            loop:true
            ---------
        },
        1200: {
            items: 4,               
            loop:true
            ---------
        }
    }
});

这对我有用!!!问题在于这个“loop:true”。将其设为 false 或按照以下给出的方式应用它。

$(".employerList").owlCarousel({      
   loop:true,
    margin:20,
    nav:true,
    center: true,
    responsiveClass:true,
    responsive:{
        0:{
            items:3,
            nav:true
        },
        768:{
            items:5,
            nav:true
        },
        1170:{
            items:10,
            nav:true,
            loop:( $('.employerList').length > 4 )
        }
    }
});