我正在尝试创建类似于这个的轮播组件,基本上这个实现是我正在寻找的,但它不能处理(或没有作为选项)是具有可变数量项目的幻灯片他们。
我在说的是:链接中提到的实现在每张幻灯片中使用 3 个项目,如果最后一张幻灯片没有正好 3 个项目,它会用空项目填充该插槽。这是使无限实现变得容易的相当好的方法。
如果只有一个插槽为空,我尝试对其进行修改以使用列表中的第一项填充该空插槽,如果两个插槽为空,则使用前两个项目等,但我偶然发现下一组幻灯片具有完全不同的显示和逻辑的问题和因此动画变得“有问题”——例如,如果最后一张幻灯片中只有一个插槽是空的,那么回到“开始”第一张幻灯片将有第二、第三和第四个项目而没有第一个项目。
我目前的“workaraound”是在每次重新定位(单击控件按钮)时克隆、附加和前置项目,但这是非常不高效的(每次操作 DOM 并基于原始选择器缓存新的元素集可能代价高昂)并且可能“懒惰的出路”。
这个问题有什么聪明的解决方案吗?