一款基于vue2.0的分页组件---写在页面内

通过 Vue2.0 实现的分页

可自由设置分页显示的多少、上一页、下一页、省略号等,也可直接输入跳转到的页码进行跳转,分页的样式可自由调整

// 1、页面的 head 部分,需要设计好页面的样式

 1 .page {
 2   font-weight: 900;
 3   height: 40px;
 4   text-align: center;
 5   color: #888;
 6   margin: 20px auto 0;
 7   background: #f2f2f2;
 8 }
 9
10 .pagelist {
11   font-size: 0;
12   background: #fff;
13   height: 50px;
14   line-height: 50px;
15 }
16
17 .pagelist span {
18   font-size: 14px;
19 }
20
21 .pagelist .jump {
22   border: 1px solid #ccc;
23   padding: 5px 8px;
24   -webkit-border-radius: 4px;
25   -moz-border-radius: 4px;
26   border-radius: 4px;
27   cursor: pointer;
28   margin-left: 5px;
29 }
30
31 .pagelist .bgprimary {
32   cursor: default;
33   color: #fff;
34   background: #337ab7;
35   border-color: #337ab7;
36 }
37
38 .jumpinp input {
39   width: 55px;
40   height: 26px;
41   font-size: 13px;
42   border: 1px solid #ccc;
43   -webkit-border-radius: 4px;
44   -moz-border-radius: 4px;
45   border-radius: 4px;
46   text-align: center;
47 }
48
49 .ellipsis {
50   padding: 0px 8px;
51 }
52
53 .jumppoint {
54   margin-left: 30px;
55 }
56
57 .pagelist .gobtn {}
58
59 .bgprimary {
60   cursor: default;
61   color: #fff;
62   background: #337ab7;
63   border-color: #337ab7;
64 }

// 2、页面的 body 部分,在多个 div 嵌套中放入多个 span 标签来展示分页

 1 <div id="app">
 2   <div>
 3     <div class="page"  v-show="show">
 4       <div class="pagelist">
 5         <span class="jump"v-show="current_page>1" @click="{current_page--}">上一页</span>
 6         <span v-show="current_page>5" class="jump" @click="jumpPage(1)">1</span>
 7         <span class="ellipsis"  v-show="efont">...</span>
 8         <span class="jump" v-for="num in indexs" :class="{bgprimary:current_page==num}" @click="jumpPage(num)">{{num}}</span>
 9         <span class="ellipsis"  v-show="efont&&current_page<pages-4">...</span>
10
11         <span class="jump" @click="{current_page++}">下一页</span>
12         <span v-show="current_page<pages-1" class="jump" class="jump" @click="jumpPage(pages)">{{pages}}</span>
13
14         <span class="jumppoint">跳转到:</span>
15         <span class="jumpinp"><input type="text" v-model="changePage"></span>
16         <span class="jump gobtn" @click="jumpPage(changePage)">GO</span>
17       </div>
18     </div>
19   </div>
20 </div>

// 3、页面底部,通过远程调用 Vue 库,或者引入下载好的 Vue.js,实例化分页并且设置好参数

 1 <script type="text/javascript" src="http://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
 2 <script>
 3 var newlist = new Vue({
 4   el: ‘#app‘,
 5   data: {
 6     current_page: 1, //当前页
 7     pages: 50, //总页数
 8     changePage:‘‘,//跳转页
 9     nowIndex:0
10   },
11   computed:{
12      show:function(){
13          return this.pages && this.pages !=1
14      },
15      efont: function() {
16        if (this.pages <= 7) return false;
17        return this.current_page > 5
18      },
19      indexs: function() {
20
21        var left = 1,
22          right = this.pages,
23          ar = [];
24        if (this.pages >= 7) {
25          if (this.current_page > 5 && this.current_page < this.pages - 4) {
26            left = Number(this.current_page) - 3;
27            right = Number(this.current_page) + 3;
28          } else {
29            if (this.current_page <= 5) {
30              left = 1;
31              right = 7;
32            } else {
33              right = this.pages;
34
35              left = this.pages - 6;
36            }
37          }
38        }
39        while (left <= right) {
40          ar.push(left);
41          left++;
42        }
43        return ar;
44      },
45    },
46   methods: {
47     jumpPage: function(id) {
48       this.current_page = id;
49     },
50   },
51 })
52 </script>

展示效果:

时间: 2024-10-08 13:00:56

一款基于vue2.0的分页组件---写在页面内的相关文章

饿了么基于Vue2.0的通用组件开发之路(分享会记录)

Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网:http://element.eleme.io/#/github:https://github.com/ElemeFE/element ## 设计目的 大部分项目起源都是源于业务方的需求,Element 也是一样.随着公司业务发展,内部开始衍生出很多后台系统,UED 部门也接到越来越多的设计需求,

Vue2.0的通用组件

饿了么基于Vue2.0的通用组件开发之路(分享会记录) Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网:http://element.eleme.io/#/github:https://github.com/ElemeFE/element ## 设计目的 大部分项目起源都是源于业务方的需求,Element 也是一样.随着公司业务发展,内部开始衍

基于vue2.0的在线电影APP,

基于vue2.0构建的在线电影网[film],webpack + vue + vuex + vue-loader + keepAlive + muse-ui + cordova 全家桶,cordova 打包成APP 从零开始搭建,适合新手练手参考.GitHub地址,api来源于网上,仅供开发参考之用,禁用于商业,否则后果自负. 在线demo apk安装包后续再放出吧 O(∩_∩)O 屏幕截图,该项目使用了响应式布局,适配全分辨率的屏幕 移动端效果 启用侧边栏模式 PC端效果 主要特色: 组件化开

基于vue2.0的一个豆瓣电影App

1.搭建项目框架 使用vue-cli 没安装的需要先安装 npm intall -g vue-cli 使用vue-cli生成项目框架 vue init webpack-simple vue-movie 然后一路回车 接着 进入项目目录 cd vue-movie 然后安装项目依赖包 cnpm install 没安装cnpm的先执行这个命令 npm install -g cnpm --registry=https://registry.npm.taobao.org 接着 npm run dev 看到

用webpack2.0构建vue2.0单文件组件超级详细精简实例

npm init -y 初始化项目  //-y 为自动生成package.json,如果需要自行配置,去掉-y即可 安装各种依赖项 npm install --save vue 安装vue2.0 npm install --save-dev webpack webpack-dev-server 安装webpack以及webpack测试服务器 //默认安装最新版2.x版本 npm install --save-dev babel-core babel-loader babel-preset-es2

一款基于react-native的弹窗提示组件

介绍一款基于react-native的弹窗提示插件 react-native-ms , github地址:https://github.com/jiangzhenfei/RNtips/tree/master 样式图 该组件还支持自己定义的icon组件 主要的使用法法如下 npm下载组件 npm install react-native-ms --save 在页面中使用 import { TipModal } from 'react-native-ms'; import React, {Compo

基于Vue2.0的音乐播放器——歌手模块(拿不到数据)

来这里的都可能在看,慕课网vue2.0 的音乐播放器的相关页面,如果使用视频介绍的方法,相当于现在来说是获取数据回报如下的错误: {code: -500001, ts: 1529809544209} code : -500001 ts : 1529809544209 原因也简单:最新的vue2.0 webpack模板中没有dev-server.js文件,进行后台数据的模拟获取,只需要使用从接口获取数据后放在本地进行代理,页面就能拿到代理的数据了具体操作如下: before(app) { app.

一款基于Vue的扩展性组件库 VV-UI

github: https://github.com/VV-UI/VV-UI 演示地址: https://vv-ui.github.io/VV-UI/#/meta-info 1. LoadingBar 当我们访问知乎或者Github的时候,会经常看到这样的加载进度条: 这种交互对于单页面应用来说,也是可以极大地增强用户体验,那么我们基于Vue 该如何实现这样的加载进度条呢?其实很简单,目前我做了一套基于Vue的开源组件库,里面完善和补充了其他组件库不存在的一些组件.比如我们的LoadingBar

基于vue2.0的网易云音乐 (实时更新)

本人在自学vue,之后想在学习过程中加以实践.由于之前有做过jquery的播放器效果,ui仿照网易云,地址 www.daiwei.org/music 于是就想做vue 的网易云播放器,网上也有类似的项目.看了一下都挺不错的,于是就想自己做一个试试 项目基于Vue 2.0  使用Vue-router,axios获取本地的data.json文件(所有的用户,音乐信息),以及vuex 的状态管理 本人是一枚小白,边学习边做的,这个播放器有什么不足之处,希望各位可以提出意见建议,我们共同学习进步. Gi