美文网首页
模拟百度翻页

模拟百度翻页

作者: Veycn | 来源:发表于2019-03-08 10:58 被阅读0次

    做wikix项目的时候,要自己写一个翻页插件,整个架构是基于vue的,所以用vue来写一个分页插件
    分析一下百度分页插件的特性:

    1. 如果页数小于5,当前是几页就是几页

    2. 如果页数大于等于6,当前页永远显示在第6个位置

    3.那个脚印的话, 就懒得做了

    写一个生成翻页列表的函数, 在初始化页面的时候,调用一次, 然后每次更新当前页面索引的时候, 调用一次

    generatepageList(this.page) {
      let tpl = []
      let tpr = []
      if(page < 6){
        return [1,2,3,4,5,6,7,8,9,10]
      } else {
        for (let i = 5; i > 0; i--){
          tpl.push(page - i)
        }
        for (let j = 1; j < 5; j++){
          tpr.push(page + j)
        }
        tpl.push(page)
        return tpl.concat(tpr)
      }
    }
    

    监听搜索关键字的改变,一旦发生改变, 调用函数

     watch: {
          key() {
            // key 值改变, 请求第一页的数据
            this.getData(this.key, 1)
            this.pageList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
            this.generatePage(this.page);
          },
          page () {
            // 如果 page 改变, 请求第 page 页的数据
            this.getData(this.key, this.page)
            this.generatePage(this.page);
            // 让页面滚回顶部
            window.scrollTo(0, 0)
          }
        }
    

    然后。。。 就完美的实现了。。。

    相关文章

      网友评论

          本文标题:模拟百度翻页

          本文链接:https://www.haomeiwen.com/subject/tnglpqtx.html