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去空格处理方法
Nov 18 Javascript
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
表单JS弹出填写提示效果代码
Apr 16 Javascript
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
Node.js开发者必须了解的4个JS要点
Feb 21 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 Javascript
js时间戳和c#时间戳互转方法(推荐)
Feb 15 Javascript
详解vuex 渐进式教程实例代码
Nov 27 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php利用cookies实现购物车的方法
2014/12/10 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python实现简单的语音识别系统
2017/12/13 Python
python实现两个文件合并功能
2018/04/01 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
python 穷举指定长度的密码例子
2020/04/02 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
数学系个人求职信范文
2014/01/30 职场文书
大学生先进事迹材料
2014/02/16 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
委托证明范本
2014/11/25 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
谢师宴学生致辞
2015/07/27 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Python Numpy之linspace用法说明
2021/04/17 Python
python spilt()分隔字符串的实现示例
2021/05/21 Python