首先让我们看一下分页标签的一些常见用途。比如,电商网站上的商品列表可能会有几千个商品,为了使用户能够更方便地浏览,我们可以使用分页标签,将这个商品列表分成多页,每页显示一定数量的商品。这样,用户可以通过上一页和下一页按钮轻松地浏览所有的商品。而在博客中,我们也可以使用分页标签,将很长的文章分成多个页面,让用户更轻松地阅读。
function Pager(totalPage, activePage, container) {this.totalPage = totalPage;this.activePage = activePage;this.container = container;this.render();}Pager.prototype = {// 渲染分页标签render: function() {var prev = '上一页';var next = '下一页';var pageList = '';// 计算起始页码和结束页码var startPage = this.activePage - 2;var endPage = this.activePage + 2;if (startPage<= 2) {startPage = 1;endPage = 5;}if (endPage >= this.totalPage -1) {endPage = this.totalPage;startPage = this.totalPage - 4;}if (startPage< 1) {startPage = 1;}for (var i = startPage;i<= endPage;i++) {if (i == this.activePage) {pageList += '' + i + '';} else {pageList += '' + i + '';}}this.container.innerHTML = prev + pageList + next;},// 切换页面switchPage: function(target) {var page = target.innerText;if (target.classList.contains('prev')) {page = this.activePage - 1;} else if (target.classList.contains('next')) {page = this.activePage + 1;}if (page< 1) {page = 1;}if (page >this.totalPage) {page = this.totalPage;}if (page == this.activePage) {return;}this.activePage = page;this.render();}};
上面是一个简单的 Javascript 分页标签组件实现。我们可以看到,首先需要传入总页数、当前页数以及容器,然后将组件的样式和渲染逻辑编写在组件的方法内。其中,render() 方法用于渲染分页标签,switchPage() 方法用于切换页面。
渲染分页标签时,首先需要计算需要显示的起始页码和结束页码。如果当前页码小于等于 2,则显示 1 到 5 的页码;如果当前页码大于等于总页数 - 1,则显示总页数 - 4 到总页数 的页码;否则显示当前页码 - 2 到当前页码 + 2 的页码。
切换页面时,如果点击的是上一页或下一页按钮,则将页码加一或减一即可。如果点击的是页码,则直接跳转到对应的页面。
最后,我们需要在 HTML 中引入该组件并传入相应的参数:
上面的代码就可以在页面上显示一个包含上一页、下一页和 5 个页码的分页标签,用户可以点击任意一个页码来切换页面。
总而言之,Javascript 分页标签可以为用户提供更好的浏览体验,减少用户对于大量数据或者长篇文章的阅读负担。在编写组件时,需要了解用户需求,灵活选择样式和渲染逻辑,保证用户可以轻松地使用。