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 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
原生javascript图片自动或手动切换示例附演示源码
Sep 04 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
JS高级运动实例分析
Dec 20 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
微信小程序实现点赞业务
Feb 10 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
Python中的高级数据结构详解
2015/03/27 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
多个应用共存的Django配置方法
2018/05/30 Python
python 字典中取值的两种方法小结
2018/08/02 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python 实现客户端与服务端的通信
2020/12/23 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
初中三好学生事迹材料
2014/01/13 职场文书
五年级语文教学反思
2014/01/30 职场文书
市场部经理岗位职责
2015/02/02 职场文书
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript