javascript - GliderJS如何在轮播中的特定索引处添加项目?
问题描述
我正在使用 gliderJS 创建一个轮播,我需要动态添加和删除项目。
我设法让它与.addItem
and.removeItem()
方法一起使用,虽然 removeItem 支持从特定索引中删除,但我在文档中看不到任何在特定索引处添加项目的方法,有人知道这是否可能吗?
这是到目前为止关于添加的代码:
const elementHTML = "somehtml";
const element = document.createElement("div");
element.innerHTML = elementHTML;
glider.addItem(element);
并将其添加到轮播的末尾,我想将其添加到特定索引处。
解决方案
没有公开的 api 专门执行此操作。但是,您可以更改 glider 和 call 的内容refresh
,这正是该addItem
方法所做的:
gliderPrototype.addItem = function (ele) {
var _ = this
_.track.appendChild(ele)
_.refresh(true)
_.emit('add')
}
因此,理论上,您应该能够将子项添加到轨道中的特定索引并调用刷新,如下所示:
const glider = new Glider(document.querySelector('.glider'), {
slidesToShow: 5,
slidesToScroll: 5,
draggable: true
})
function insertBeforeIndex (element, index) {
glider.track.insertBefore(element, glider.track.children[index])
glider.refresh()
}
const newElement = document.createElement("div")
newElement.innerHTML = "<em>new item</em>"
insertBeforeIndex(newElement, 2) // inserts it in 3rd place
.box {
border: 2px solid lightblue;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glider-js@1/glider.min.css">
<script src="https://cdn.jsdelivr.net/npm/glider-js@1/glider.min.js"></script>
<div class="glider-contain">
<div class="glider">
<div class="box"> 1 </div>
<div class="box"> 2 </div>
<div class="box"> 3 </div>
<div class="box"> 4 </div>
</div>
</div>
推荐阅读
- typescript - 如何获取从函数返回的对象类型
- python - Tensorflow“model.evaluate()”每次在同一个数据集上运行都会给出不同的结果
- javascript - 为 ng-repeat 汇集数组
- python - Python 数据类中的 if else
- java - 如何修复此错误:java.lang.NoSuchMethodError: 'java.lang.AutoCloseable org.mockito.MockitoAnnotations.openMocks(java.lang.Object)'
- omnet++ - Omnet++ - 如何计算节点(无线主机)传输、接收或空闲的时间?(--> Inet)
- r - 函数中 R 的总和
- python - 协助使用 bs4 抓取 json 解析
- swiftui - 使用 ViewBuilder 时内容包装未对齐的 HStack
- c# - user.firstname 在 asp.net 中不可用