我有一个容器,包括16个div元素堆叠在彼此的顶部。我想将显示的div元素数量限制为每页4个,并在内容下方显示分页。分页应该使用新的数字填充,因为未来将在html文件中添加新的div元素,但每页显示的元素数量应限制为4个。我试图实现一个纯Javascript解决方案,是我到目前为止已经试过:在HTML使用JS填充HTML文件与div的数组使用JS
的按钮(我不包括div元素,他们是16就像我说的,并携带“.events-section__main事件”之类的名称):
<input type="button" id="first" onclick="firstPage()" value="first" />
<input type="button" id="next" onclick="nextPage()" value="next" />
<input type="button" id="previous" onclick="previousPage()" value="previous" />
<input type="button" id="last" onclick="lastPage()" value="last" />
JS:
var pageList = new Array();
var currentPage = 1;
var numberPerPage = 4;
var numberOfPages = 0;
var events = Array.prototype.slice.call(document.querySelectorAll(".events-section__main-event"));
function getNumberOfPages() {
return Math.ceil(events.length/numberPerPage);
}
function nextPage() {
currentPage += 1;
loadList();
}
function previousPage() {
currentPage -= 1;
loadList();
}
function firstPage() {
currentPage = 1;
loadList();
}
function lastPage() {
currentPage = numberOfPages;
loadList();
}
function loadList() {
var begin = ((currentPage - 1) * numberPerPage);
var end = begin + numberPerPage;
pageList = events.slice(begin, end);
drawList();
check();
}
function drawList() {
for (i = 0; i < pageList.length; i++) {
pageList[i].classList.remove("events-section__main-event");
pageList[i].classList.add("not-visible");
}
}
function check() {
document.getElementById("next").disabled = currentPage == numberOfPages ? true : false;
document.getElementById("previous").disabled = currentPage == 1 ? true : false;
document.getElementById("first").disabled = currentPage == 1 ? true : false;
document.getElementById("last").disabled = currentPage == numberOfPages ? true : false;
}
function load() {
loadList();
}
window.onload = load;
我试图说明和喜使用具有display:none属性的css类的de元素。似乎我在那里的一半,但点击按钮时,仍然是元素混乱,他们只是消失。
@Amberlamps我停留在drawList()函数,我不能处理这个问题。代码示例与问题解释一起整齐地显示。 – IsaaK08