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 Timing
Apr 21 Javascript
javascript脚本编程解决考试分数统计问题
Oct 18 Javascript
关于Javascript作用域链的八点总结
Dec 06 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
js如何调用qq互联api实现第三方登录
Mar 28 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
Javascript中的getter和setter初识
Aug 17 Javascript
微信小程序组件之srcoll-view的详解
Oct 19 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
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python实现Linux中的du命令
2017/06/12 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
python3中for循环踩过的坑记录
2020/12/14 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
《圆明园的毁灭》教学反思
2014/02/28 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
党支部考察意见范文
2015/06/02 职场文书
杨善洲电影观后感
2015/06/04 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书