用Vue2.0实现简单的分页及跳转
用Vue2.0实现简单的分页及跳转
用Vue2.0实现一个数据的分页及页数的跳转,代码如下:
- 数据绑定:{{...}} <a v-on:click="btnClick(item)">{{item}}</a>
- 事件绑定:v-on <a v-on:click="cur--,pageClick()">上一页</a>
- 判断:v-if <li v-if="cur==1"><a class="banclick">上一页</a></li>
- 循环:v-for <li v-for="item in indexs" v-bind:class="{'active':cur==item}"></li>
- 修改样式:v-bind绑定class属性 <li v-for="item in indexs" v-bind:class="{'active':cur==item}"></li>
HTML代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>分页</title>
- <style>
- *{margin: 0;padding: 0;}
- #page-break{margin-top: 20px;margin-left: 20px;}
- #page-break li{list-style: none;}
- #page-break a{border: 1px solid #ddd; text-decoration: none;float: left;padding: 6px 12px;color: #337ab7;cursor: pointer}
- #page-break a:hover{background-color: #eee;}
- #page-break a .banclick{cursor: not-allowed;}
- #page-break .active a{color: #fff;cursor: default;background-color: #337ab7;border-color: #337ab7;}
- #page-break i{font-style: normal;color: #d44950;margin: 0px 4px;font-size: 12px;}
- #page-break .jumpbox .jumppage {border: 1px solid #ddd; margin-left: 40px; height: 33px; width: 40px; float: left;}
- #page-break .jumpbox .jumpbtn {cursor: pointer; margin-left: 10px;}
- #page-break .jumpbox .jumpbtn:active {color: #337ab7;}
- </style>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- </head>
- <body>
- <div id="page-break">
- <ul>
- <li v-if="cur>1">
- <a v-on:click="cur--,pageClick()">上一页</a>
- </li>
- <li v-if="cur==1">
- <a class="banclick">上一页</a>
- </li>
- <li v-for="item in indexs" v-bind:class="{'active':cur==item}">
- <a v-on:click="btnClick(item), pageClick()">{{item}}</a>
- </li>
- <li v-if="cur!=all">
- <a v-on:click="cur++,pageClick()">下一页</a>
- </li>
- <li v-if="cur==all">
- <a class="banclick">下一页</a>
- </li>
- <li><a>共<i>{{all}}</i>页</a></li>
- <div class="jumpbox">
- <input type="number" class="jumppage" />
- <a class="jumpbtn" v-on:click="pageSkip()">跳转</a>
- </div>
- </ul>
- </div>
- </body>
- </html>
js代码如下:
- new Vue({
- el: '#page-break',
- data: {
- cur: 1,
- all: 20
- },
- watch: {
- cur: function(newValue, oldValue){
- console.log(arguments);
- }
- },
- methods: {
- btnClick(num){
- if(num!=this.cur){
- this.cur=num;
- }
- },
- pageClick(){
- console.log('现在是'+this.cur+'页')
- },
- pageSkip(){
- var maxPage = this.all;
- var skipPage = Number(document.getElementsByClassName("jumppage")[0].value);
- console.log(typeof skipPage);
- if(!skipPage){
- alert("请输入跳转页码");
- return;
- }else if(skipPage<1 || skipPage>maxPage){
- alert("您输入的页码超过页数范围了!");
- return;
- }else{
- //this.cur=skipPage;
- this.btnClick(skipPage);
- this.pageClick();
- }
- }
- },
- computed: {
- indexs(){
- var left = 1;
- var right = this.all;
- var arr = [];
- if(this.all>=7){
- if(this.cur>4 && this.cur<this.all-3){
- left = this.cur-3;
- right = this.cur+3;
- }else if(this.cur<=4){
- left=1;
- right=7;
- }else{
- left=this.all-6;
- right=this.all;
- }
- }
- while(left<=right){
- arr.push(left);
- left++;
- }
- return arr;
- }
- }
- })
分页显示如下:


用Vue2.0实现简单的分页及跳转的更多相关文章
- 后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_158 在之前的一篇文章中:为美多商城(Django2.0.4)添加基于websocket的实时通信,主动推送,聊天室及客服系统,详 ...
- Vue2.0 中,“渐进式框架”和“自底向上增量开发的设计”这两个概念是什么?(转)
https://www.zhihu.com/question/51907207?rf=55052497 徐飞 在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使 ...
- Vue2.0 基础入门
前言:" 今生遇汝,何其幸哉:于我蒙昧之时遇到你,于我大雾初透之时爱上你,于我大智初醒之时沉沦你. " 官网: 介绍 - Vue.js (vuejs.org) 指令与修饰符 创建实 ...
- 基于vue2.0的分页组件开发
今天安排的任务是写基于vue2.0的分页组件,好吧,我一开始是觉得超级简单的,但是越写越写不出来,写的最后乱七八糟的都不知道下句该写什么了,所以重新捋了思路,小结一下- 首先写组件需要考虑: 要从父组 ...
- 采用Vue2.0开发的分页js组件
2017-11-17 19:14:23 基于jQuery的分页插件相信大家伙已经都用过很多了,今天分享一下基于Vue2.0的分页插件pagination.js 由于项目需求,要求使用 Vue2.0 开 ...
- Vue2.0 分页插件pagination使用详细说明
Vue2.0 分页pagination使用 插件下载地址:Vue_Pagination 插件描述:基于jQuery的分页插件大家都用过很多了吧,今天分享一下基于Vue的分页插件pagination.j ...
- Vue2.0+ElementUI+PageHelper实现的表格分页
Vue2.0+ElementUI+PageHelper实现的表格分页 前言 最近做了一些前端的项目,要对表格进行一些分页显示.表格分页的方法有很多,从宏观上来说分为物理分页和逻辑分页,由于逻辑分页(即 ...
- vue2.0实现分页组件
最近使用vue2.0重构项目, 需要实现一个分页的表格, 没有找到合适的组件, 就自己写了一个, 效果如下: 该项目是使用 vue-cli搭建的, 如果你的项目中没有使用webpack,请根据代码自己 ...
- 一款基于vue2.0的分页组件---写在页面内
通过 Vue2.0 实现的分页 可自由设置分页显示的多少.上一页.下一页.省略号等,也可直接输入跳转到的页码进行跳转,分页的样式可自由调整 // 1.页面的 head 部分,需要设计好页面的样式 .p ...
随机推荐
- Codeforces G. Bus Number(dfs排列)
题目描述: Bus Number time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- Kotlin属性引用详解
继续来学习Kotlin反射相关的,这次主要是跟反射属性相关的东东. 属性引用(Property Reference): 属性引用的用法与函数(方法)引用的用法是完全一致,都是通过::形式来引用的.下面 ...
- JQuery DOM操作(属性操作/样式操作/文档过滤)
jQuery——入门(三)JQuery DOM操作(属性操作/样式操作/文档过滤) 一.DOM属性操作 1.属性 (1).attr() 方法 语法:$(selector).attr(name|prop ...
- AspxGridView行为:分页、分组、排序、过滤、锁定列
HTML页面 <dx:ASPxGridView ID="grvList" Width="100%" runat="server" Au ...
- gcc分步骤编译的记录
- LeetCode 1048. Longest String Chain
原题链接在这里:https://leetcode.com/problems/longest-string-chain/ 题目: Given a list of words, each word con ...
- Spark-源码分析02-Luanch Executor
1.SparkContext.scala sparkcontext 在被new的时候,会执行class中的代码 其中有一个就是创建TaskScheduler 和 SchedulerBackend,而S ...
- C1010 unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source
提示说是预编译出现问题,提示添加头文件stdafx.h,但是添加了也会继续有其他错误解决方法: 在菜单Project->Properties(或者直接快捷键Alt+F7)->C/C++-& ...
- WinDbg常用命令系列---||(系统状态)
||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态. 使用形式 || System 参数 System 指定要显示的系统. 如果省略此参数,将显示正在调试 ...
- 使用nodejs+ harbor rest api 进行容器镜像迁移
最近因为基础设施调整,需要进行harbor 镜像仓库的迁移,主要是旧版本很老了,不想使用,直接 打算部署新的,原以为直接使用复制功能就可以,但是发现版本差异太大,直接失败,本打算使用中间 版本过度进行 ...