实现简单的一页展示多条数据左右翻页功能

直接上代码,代码里有注释

<!DOCTYPE html>
<html>
<head>
    <title>实现简单的一页展示多条数据左右翻页功能</title>
</head>
<body>
    <div class="container">
        <button type="button" onclick="moveLeft(-1)">左翻页</button>
        <button type="button" onclick="moveLeft(1)">右翻页</button>
    </div>
    <script>
        var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
        var flag = 0;
        const NUM = 6;
        function moveLeft(a){
            var newArr = [];
            //如果是向左滑动,首先判断标志位flag是否小于等于0
            if(a == -1){
                //如果标志位为0,则表示不能向右滑动,把flag标志位置位0
                if(flag <= 0){
                    flag = 0;
                    newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                }else{
                    flag = flag - 1;
                    console.log(flag);
                    newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                }
            }else{//如果向右滑动,则需要判断上限
                /*debugger;*/
                //首先判断是不是NUM的整数倍
                //如果是NUM的整数倍
                if(arr.length % NUM == 0){
                    //如果flag大于等于arr.length/NUM-1,把flag置为arr.length/NUM-1
                    if(flag >= arr.length/NUM-1){
                        flag = arr.length/NUM-1;
                        newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                    }else{//如果flag小于arr.length/NUM-1
                        flag = flag + 1;
                        console.log(flag);
                        newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                    }
                }else{//如果不是NUM的整数倍
                    //如果flag大于等于Math.floor(arr.length/NUM),把flag置为Math.floor(arr.length/NUM)
                    if(flag >= Math.floor(arr.length/NUM)){
                        flag = Math.floor(arr.length/NUM);
                        newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                    }else{//如果flag小于Math.floor(arr.length/NUM)
                        flag = flag + 1;
                        newArr = arr.slice(flag*NUM,flag*NUM+NUM);
                    }
                }
            }
            console.log(newArr);
            return newArr;
        }
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值