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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
javascript 学习之旅 (3)
Feb 05 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
JS禁用浏览器退格键实现思路及代码
Oct 29 Javascript
javascript实现网页字符定位的方法
Jul 14 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
jquery遍历json对象集合详解
May 18 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 Javascript
js取小数点后两位四种方法
Jan 18 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
JS实现瀑布流效果
Mar 07 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的L方法使用简介
2014/06/18 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
JSON对象转化为字符串详解
2017/08/11 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
python 标准差计算的实现(std)
2019/07/29 Python
如何通过python实现全排列
2020/02/11 Python
python实现打砖块游戏
2020/02/25 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
毕业生多媒体设计求职信
2013/10/12 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
数学教师个人工作总结
2015/02/06 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL