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刷新当前页面的几种方法总结
Dec 24 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
Mar 05 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
js实现文字在按钮上滚动的方法
Aug 20 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
小程序转发探索示例
Feb 19 Javascript
js实现点击上传图片并设为模糊背景
Aug 02 Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 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
PHPlet在Windows下的安装
2006/10/09 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
js jquery数组介绍
2012/07/15 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
高速铁道技术专业求职信
2014/08/09 职场文书
四风问题对照检查材料
2014/09/22 职场文书
小学运动会加油稿
2015/07/22 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
Python函数对象与闭包函数
2022/04/13 Python