Vue2.0实现简单分页及跳转效果


Posted in Javascript onJuly 29, 2019

用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实现简单分页及跳转效果

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中关于String对象的replace使用详解
May 24 Javascript
jquery.tmpl JQuery模板插件
Oct 10 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
js弹出窗口返回值的简单实例
May 28 Javascript
AngularJS基础 ng-value 指令简单示例
Aug 03 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
微信小程序模板之分页滑动栏
Feb 10 Javascript
整理一些最近经常遇到的前端面试题
Apr 25 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
uniapp实现可滑动选项卡
Oct 21 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 #Javascript
js实现多张图片每隔一秒切换一张图片
Jul 29 #Javascript
javascript面向对象程序设计实践常用知识点总结
Jul 29 #Javascript
javascript中this的用法实践分析
Jul 29 #Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 #Javascript
jquery.pager.js分页实现详解
Jul 29 #jQuery
javascript面向对象创建对象的方式小结
Jul 29 #Javascript
You might like
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
PHP版 汉字转码的实现详解
2013/06/09 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
python动态监控日志内容的示例
2014/02/16 Python
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python动态性强类型用法实例
2015/05/09 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python pillow库的基础使用教程
2021/01/13 Python
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
会计岗位职责
2013/11/08 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
小学生毕业评语
2014/12/26 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang