• 原生JS实现分页效果1.0


    不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>原生JS实现分页效果</title>
    <style>
    body{
    margin:100px 200px;
    }
    #page{
    margin:20px 0;
    }
    #page>#pre,#page>#next{
    display:inline-block;
    height: 34px;
    line-height:34px;
    padding: 0 18px;
    border: 1px solid #e1e2e3;
    text-decoration:none;
    }
    .list{
    display:inline-block;
    }
    .list a{
    text-decoration:none;
    padding:0 5px;
    }
    .list a.current{
    color:red;
    }
    </style>
    </head>
    <body>
    <section id="box"></section>
    <div id="page">
    <a href="javascript:;" id="pre">上一页</a>
    <div class="list"></div>
    <a href="javascript:;" id="next">下一页</a>
    </div>
    </body>
    </html>
    <script>
    'use strict'
    // 获取元素
    let domBox = document.getElementById("box");
    let domPage = document.getElementById("page");
    let domPre = document.getElementById("pre");
    let domNext = document.getElementById("next");
    let domList = document.querySelector(".list");

    // 模拟数据
    let arrJson = [
    'Content_1',
    'Content_2',
    'Content_3',
    'Content_4',
    'Content_5',
    'Content_6',
    'Content_7',
    'Content_8',
    'Content_9',
    'Content_10'
    ];
    let jsonLen = arrJson.length;

    // 设置规则
    let each = 3;
    let page = Math.ceil(jsonLen / each);

    // 设置内容
    for(let i=0;i<each;i++){
    let domP = '<p>'+ arrJson[i] +'</p>';
    domBox.innerHTML += domP;
    }


    // 设置列表页数
    for(let i=0;i<page;i++){
    let domA = document.createElement('a');
    domA.href = 'javascript:;';
    domA.innerHTML = i + 1;
    domList.insertBefore(domA,null);
    }

    // 切换页
    domList.addEventListener('click',function(e){
    let target = e.target;
    let targetName = target.nodeName.toLocaleLowerCase();
    if(targetName==='a'){
    domBox.innerHTML = '';
    if(target.innerHTML!=='1'){
    if(target.innerHTML==='2'){
    for(let i=0;i<each;i++){
    let arrJsonCurrent = arrJson[i-1+(target.innerHTML*(each-1))];
    if(arrJsonCurrent==null){break;}
    let domP = '<p>'+ arrJsonCurrent +'</p>';
    domBox.innerHTML += domP;
    }
    }else if(target.innerHTML==='3'){
    for(let i=0;i<each;i++){
    let arrJsonCurrent = arrJson[i+(target.innerHTML*(each-1))];
    if(arrJsonCurrent==null){break;}
    let domP = '<p>'+ arrJsonCurrent +'</p>';
    domBox.innerHTML += domP;
    }
    }else{
    for(let i=0;i<each;i++){
    let arrJsonCurrent = arrJson[i + (target.innerHTML-each) +(target.innerHTML*(each-1))];
    if(arrJsonCurrent==null){break;}
    let domP = '<p>'+ arrJsonCurrent +'</p>';
    domBox.innerHTML += domP;
    }
    }
    }else{
    for(let i=0;i<each;i++){
    let arrJsonCurrent = arrJson[i];
    if(arrJsonCurrent==null){break;}
    let domP = '<p>'+ arrJsonCurrent +'</p>';
    domBox.innerHTML += domP;
    }
    }
    }
    })
    </script>

    算法

    <!-- 2*2-1 2*3 2*4+1 2*5+2 -->
    <!-- 3.4.5 6.7.8 9.10.11 12.13.14 -->

  • 相关阅读:
    Codeforces Round #651 (Div. 2) C. Number Game(数论)
    Codeforces Round #651 (Div. 2) D. Odd-Even Subsequence(二分)
    Codeforces Round #651 (Div. 2) E. Binary Subsequence Rotation(dp)
    Codeforces Global Round 8 E. Ski Accidents(拓扑排序)
    Codeforces Global Round 8 A. C+=(贪心)
    Codeforces Global Round 8 B. Codeforces Subsequences(构造)
    mysql 索引类型都有哪些
    PHP正则表达式
    MySQL时间盲注五种延时方法
    MySQL benchmark() 重复执行某表达式
  • 原文地址:https://www.cnblogs.com/pssp/p/5467602.html
Copyright © 2020-2023  润新知