LayUI分页组件实现分页, 移动端页码跳转页面出现闪烁,求优化办法。

移动端页面,使用LayUI的分页组件实现了分页,功能已经实现,现在就是移动端页面跳转时闪烁得厉害,求大神指点解决办法。

clipboard.png

相关代码

html代码如下:

                <div class="series_products">
                    <ul id="products_list"></ul>
                    <div id="demo3" class="layPage"></div>
                </div>

js代码如下:
` //本地测试数据

var data = [{
                href: "javascript:;",
                src: "images/img7.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img8.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img9.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img10.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img11.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img12.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img12.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img11.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img10.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img9.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img8.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img7.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img12.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img11.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img10.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img9.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img8.jpg",
                name: "安敏修复天丝面膜"
            },
            {
                href: "javascript:;",
                src: "images/img7.jpg",
                name: "安敏修复天丝面膜"
            },
           
        ];
        layui.use(['laypage', 'layer'], function () {
            var laypage = layui.laypage,
                layer = layui.layer;
            //自定义首页、尾页、上一页、下一页文本
            laypage.render({
                elem: 'demo3',
                count: data.length,
                limit: 6,
                groups: 4,
                theme: '#ff8874',
                first: '首页',
                last: '尾页',
                layout: ['prev', 'page', 'next'],
                prev: '<em><</em>',
                next: '<em>></em>',
                jump: function (obj) {
                    //模拟渲染
                    document.getElementById('products_list').innerHTML = function () {
                        var arr = [],
                            // 截取返回数据组中当前跳转页的数据--.concat()返回数组的浅拷贝
                            thisData = data.concat().splice(obj.curr * obj.limit -
                                obj.limit, obj.limit);
                        //thisData为当前跳转页的数据数组 
                        layui.each(thisData, function (index, item) {
                            arr.push('<li><a class="aLink"  href="' +
                                item.href +
                                '"/>' +
                                '<div class="products_pic"><img src="' +
                                item.src +
                                '"/></div>' +
                                '<p class="products_name">' +
                                item.name +
                                '</p>' +
                                '</a></li>');
                        });
                        return arr.join('');
                    }();
                }
            });
        });

`

阅读 4.2k
2 个回答

直接替换也太粗鲁了吧, 两种;

  1. 动画过渡
  2. 先提前加载下一页

问题已经解决了,闪烁这么厉害的原因是因为数据渲染区没有给定高度,重写内容时由于高度从0增大,导致下面的内容掉落,所以闪烁得厉害。给渲染区一个固定高度后,闪烁bug大致解决啦。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题