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 相关文章推荐
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
JS三级可折叠菜单实现方法
Feb 29 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
vue input输入框模糊查询的示例代码
May 22 Javascript
用npm-run实现自动化任务的方法示例
Jan 14 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 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
PHP无限分类的类
2007/01/02 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
php中Ctype函数用法详解
2014/12/09 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
javascript demo 基本技巧
2009/12/18 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
Vue实现日历小插件
2019/06/26 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python中对list去重的多种方法
2014/09/18 Python
python正则中最短匹配实现代码
2018/01/16 Python
python主线程捕获子线程的方法
2018/06/17 Python
学生信息管理系统python版
2018/10/17 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
地理信息科学专业推荐信
2014/09/08 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
会计工作岗位职责
2015/02/03 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
飞屋环游记观后感
2015/06/08 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers