美文网首页
Vue实现简易翻页效果

Vue实现简易翻页效果

作者: 天天要加油 | 来源:发表于2018-11-08 10:18 被阅读0次

源码如下:

<html>
<head>
   <meta charset="UTF-8">
   <title>slidePage</title>
   <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
   <style type="text/css">
      *{
         margin: 0;
         padding: 0;
      }
      .container {
         width: 100%;
         margin: 0 auto;
         text-align: center;
      }
      .content{
         font-size: 400px
      }
      .leftBtn{
         width: 45px;
         height: 45px;
         margin-right: 15px;
      }
      .rightBtn{
         width: 45px;
         height: 45px;
         margin-left: 15px;
      }

   </style>
</head>
<body>
<div id='root'>
   <div v-if="numberArr.length == 0">{{showMessage}}</div>
   <div class="container" v-for="(item, index) in getCurPageContent(numberArr, curPage, itemNumPerPage)" :key="index">
      <div class="content">{{item}}</div>
      <div class="pageButtonList">
         <button class="leftBtn" @click="handleClick('leftBtn')"><</button>
         <span class="pagination">{{curPage}}/{{totalPage}}</span>
         <button class="rightBtn" @click="handleClick('rightBtn')">></button>
      </div>
   </div>
</div>
<script>
    new Vue({
        el: "#root",
        data(){
            return {
                showMessage: 'No number',
                content:'',
                numberArr: [1, 2, 3, 4],
                curPage: 1,
                totalPage: 1,
                itemNumPerPage: 1
            }
        },
        mounted() {
            this.init()
        },
        methods:{
            init(){
                this.totalPage = Math.ceil(this.numberArr.length / this.itemNumPerPage)
                this.totalPage = this.totalPage < 1 ? 1 : this.totalPage
            },
            getCurPageContent: function(numberArr, curPage, itemNumPerPage){
                return numberArr.filter(function(element, index){
                    if(index >= (curPage -1)* itemNumPerPage && index < curPage *itemNumPerPage){
                        return true
                    }else{
                        return false
                    }
                })
            },
           handleClick: function(arg){
                if(arg == 'leftBtn'){
                    this.curPage = this.curPage > 1 ? --this.curPage : this.totalPage
                }else if (arg == 'rightBtn'){
                    this.curPage = this.curPage < this.totalPage ? ++this.curPage: 1
                }
           }
           // handleLeftClick: function(){
           //      if(this.curPage > 1){
           //          this.curPage --
           //      }else{
           //          this.curPage = this.totalPage
           //      }
           //  },
           //  handleRightClick: function(){
           //      if(this.curPage < this.totalPage){
           //          this.curPage ++
           //      }else{
           //          this.curPage = 1
           //      }
           //  }
        }
    })
</script>
</body>
</html>

效果如下所示,点击左右能切换页面:


image.png

相关文章

  • Vue实现简易翻页效果

    源码如下: 效果如下所示,点击左右能切换页面:

  • 微信浏览器中音频自动播放

    需求: 移动端微信浏览器+vue音频自动播放+ 翻页会有不同的BGM效果实现 实现: 第一步: 音频需要预加...

  • Vue 实现简易tab切换效果

    实现思路: 1.点击上方的标题,下方的内容随之发生改变;2.上方和下方用的是两个块,是兄弟节点,所以需要点击tab...

  • vue 书本翻页的效果

    第一种效果 1.对应的效果图。如下: 2.对应翻页的代码。如下: 第二种效果 1.对应的效果图。如下: 2.对应翻...

  • 07Vue.js实现简易的todolist列表

    Vue.js实现简易的todolist列表 我们可以利用vue做一个简易的列表清单。要求如下:1、在文本框内输入内...

  • 原生JS实现翻页效果

  • 利用GPU实现翻页效果

    0x00 前言 有一段时间没有更新博客了,在考虑写点什么的时候正好赶上了这个月我的书《Unity 3D脚本编程》又...

  • iOS实现翻页效果动画

    项目里面有一个接受消息然后将消息内容以翻页的形式展现给用户,返回的数据就是简单的文字没有图片,所以我就简单的用了t...

  • UICollectionView翻页效果实现

    在写文章之前,先介绍下我的项目需求,我们项目是一个电商APP,当前功能是在商品详情里实现一个商品推荐模板,要...

  • 09Vue.js实现tab切换效果

    利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播、导航子菜单的隐藏、t...

网友评论

      本文标题:Vue实现简易翻页效果

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