我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

当前位置: 首页 > 知识 > 如何实现JavaScript分页特效?

本文介绍了如何使用JavaScript实现分页特效。我们需要创建一个HTML文件,包含一个表格和一个按钮。在JavaScript中编写一个函数,用于获取表格的数据并按照指定的页码进行分页显示。通过监听按钮的点击事件,实现翻页功能。

JS 分页特效源码详细介绍

原生JS实现酷炫分页

1、代码语言:JavaScript

2、HTML结构

<!DOCTYPE html><head>    <meta httpequiv="ContentType" content="text/html; charset=utf8" />    <title>原生JS实现酷炫分页</title>    <style>        * {            margin: 0;            padding: 0;        }        li {            liststyle: none;        }        #ul1 {            width: 600px;            height: 250px;        }        #ul1 li {            width: 100px;            height: 100px;            background: red;            float: left;            overflow: hidden;            margin: 10px;        }        a {            margin: 5px;        }    </style></head><body>    <p id="p1"></p>    <ul id="ul1">        <! 这里将动态加载数据 >    </ul>    <a href="javascript:void(0);" onclick="page({nowNum:1})">首页</a>    <a href="javascript:void(0);" onclick="page({nowNum:2})">尾页</a>    <script type="text/javascript" src="js/move.js"></script>    <script>        window.onload = function () {            var json = {                title: [                    '效果1',                    '效果2',                    '效果3',                    '效果4',                    '效果5',                    '效果6',                    '效果7',                    '效果8',                    '效果9',                    '效果10',                    '效果11',                    '效果12',                    '效果13',                    '效果14',                    '效果15',                    '效果16',                    '效果17',                    '效果18',                    '效果19',                    '效果20',                    '效果21',                    '效果22',                    '效果23',                    '效果24',                    '效果25',                    '效果26',                    '效果27',                    '效果28',                    '效果29',                    '效果30',                    '效果31',                    '效果32',                    '效果33',                    '效果34'                ]            };            //建立数组,存储布局坐标            var arr = [];            //从最后一个li开始运动,下标为9            var iNow = 9;            page({                id: 'p1',                nowNum: 1,                //计算总页数,除以10并向上取整                allNum: Math.ceil(json.title.length / 10),                callBack: function (now, all) {                    //如果当前页乘以10小于json.title.length,加载10条                    //如果当前页乘以10大于json.title.length, 加载本例中剩于的4条                    var num = now * 10 < json.title.length ? 10 : json.title.length  (now  1) * 10;                    //获取ul                    var oUl = document.getElementById('ul1');                    //获取li                    var aLi = oUl.getElementsByTagName('li');                    //如果不前ul里面的的内容为空                    if (oUl.innerHTML == '') {                        //循环num次                        for (var i = 0; i < num; i++) {                            var li = document.createElement('li');                            li.innerHTML = json.title[i];                            oUl.appendChild(li);                        }                    } else {                        //清空内容                        oUl.innerHTML = '';                        for (var i = 0; i < num; i++) {                            var li = document.createElement('li');                            li.innerHTML = json.title[i];                            oUl.appendChild(li);                        }                    }                }            });        }    </script></body></html>

基于jQuery的分页组件特效

1、代码语言:JavaScript(使用jQuery)

2、HTML结构

<!DOCTYPE html><head>    <meta httpequiv="ContentType" content="text/html; charset=utf8" />    <title>jQuery分页组件特效</title>    <style>        /* CSS样式省略 */    </style>    <script src="https://code.jquery.com/jquery3.6.0.min.js"></script></head><body>    <p id="pagingContainer">        <! 分页容器 >    </p>    <script>        (function($){            $.fn.paging = function(options){                var settings = $.extend({                    list_num: 50, //文章数目,默认50篇                    ali: null, //获取页码的DOM,默认null                    btn: null, //获取上下页按钮的DOM,默认null                    num: 5 //每页显示的文章数目,默认5篇                }, options);                return this.each(function(){                    var self = $(this);                    self.data('paging', new Paging(settings));                });            };            function Paging(options){                this.list_num = options.list_num; //文章数目,默认50篇                this.ali = options.ali; //获取页码的DOM,默认null                this.btn = options.btn; //获取上下页按钮的DOM,默认null                this.num = options.num; //每页显示的文章数目,默认5篇                this.page = 1; //定义一个当前页面的全局变量,初始值为1                this.page_num = Math.ceil(this.list_num / this.num); //根据文章数和每页显示数,向上取整算出页码数                this.drc = [this.page  2, this.page  1, this.page, this.page + 1, this.page + 2]; //中间按钮是当前页码,则前后各两个按钮表示相邻页码            }            Paging.prototype.init = function(){                var self = this;                //给页码按钮绑定点击事件                for(var i = 0, len = this.ali.length; i < len; i++){                    if(this.drc[i] > 0 && this.drc[i] <= this.page_num){                        this.ali[i].innerText = this.drc[i]; //设置页码文本                    }else{                        this.ali[i].innerText = '*'; //非有效页码用星号表示                    }                    this.ali[i].onclick = function(){                        var val = parseInt(this.innerText, 10); //获取点击的页码值,并转换为整数类型                        if(!isNaN(val)){ //判断是否为数字类型,避免点击到非有效页码时报错                            self.page = val; //更新当前页码值                            self.render(); //重新渲染分页组件                        }else{                            alert('请单击正确的页码'); //弹出提示框,提醒用户点击有效的页码按钮                            return false; //终止函数执行,防止后续操作出错                        }                    };                }                //给上一页和下一页按钮绑定点击事件                this.btn[0].onclick = function(){ //上一页按钮的点击事件处理函数                    self.page; //将当前页码值减一,实现翻到上一页的效果                    self.render(); //重新渲染分页组件,更新显示内容为上一页的数据                };                this.btn[1].onclick = function(){ //下一页按钮的点击事件处理函数                    self.page++; //将当前页码值加一,实现翻到下一页的效果                    self.render(); //重新渲染分页组件,更新显示内容为下一页的数据                };            };            Paging.prototype.render = function(){ //重新渲染分页组件的方法,用于更新显示内容和状态信息等,根据当前选中的页码来渲染对应的内容和样式等信息,如果当前页码小于等于零或大于最大页码数,则弹出提示框提醒用户已经到达列表的开头或结尾;否则根据当前页码计算出需要显示的内容范围,然后调用相应的方法进行渲染操作即可,具体实现方式可以根据实际需求进行调整和优化以达到最佳效果和性能表现!
免责声明:本站内容(文字信息+图片素材)来源于互联网公开数据整理或转载,仅用于学习参考,如有侵权问题,请及时联系本站删除,我们将在5个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

132-7207-3477

上班时间

周一到周五 09:00-18:00

二维码
线