GliderJS 如何在轮播中的特定索引处添加项目?
GliderJS how to add item at a specific index in the carousel?
我正在使用 gliderJS 创建一个旋转木马,我需要动态地添加和删除项目。
我设法让它与 .addItem
和 .removeItem()
方法一起工作,虽然 removeItem 支持从特定索引中删除,但我在文档中看不到任何在特定索引处添加 Item 的方法, 有谁知道这是否可能?
这是到目前为止关于添加的代码:
const elementHTML = "somehtml";
const element = document.createElement("div");
element.innerHTML = elementHTML;
glider.addItem(element);
然后将它添加到轮播的末尾,我想将它添加到特定索引处。
没有公开 api 来专门执行此操作。但是,您可以更改滑翔机的内容并调用 refresh
,这确实正是 addItem
方法所做的:
gliderPrototype.addItem = function (ele) {
var _ = this
_.track.appendChild(ele)
_.refresh(true)
_.emit('add')
}
所以理论上,您应该可以 add a child to a specific index 在轨道中调用刷新,大致如下:
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>
我正在使用 gliderJS 创建一个旋转木马,我需要动态地添加和删除项目。
我设法让它与 .addItem
和 .removeItem()
方法一起工作,虽然 removeItem 支持从特定索引中删除,但我在文档中看不到任何在特定索引处添加 Item 的方法, 有谁知道这是否可能?
这是到目前为止关于添加的代码:
const elementHTML = "somehtml";
const element = document.createElement("div");
element.innerHTML = elementHTML;
glider.addItem(element);
然后将它添加到轮播的末尾,我想将它添加到特定索引处。
没有公开 api 来专门执行此操作。但是,您可以更改滑翔机的内容并调用 refresh
,这确实正是 addItem
方法所做的:
gliderPrototype.addItem = function (ele) {
var _ = this
_.track.appendChild(ele)
_.refresh(true)
_.emit('add')
}
所以理论上,您应该可以 add a child to a specific index 在轨道中调用刷新,大致如下:
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>