vue 分页器组件+css动画效果

news2025/1/11 5:46:44

全网都找了一遍没有找到符合UI需求的分页动画,于是就主动上手了

需求:

1、分页最多显示9页,总页数最多显示无上限;

2、点击下一页的时候需要有动画效果过度,如果当前页数是当前显示最后的一页,则停了当前显示最后的位置,但是点击下一页的时候需要用户感知

效果如图所示:

1、代码如下:

 
<template>
  <div><br>当前显示页面{{current}}
    <div class="pagination">
      <div @click="prevPage">上一页</div>
      <div v-for="(item, index) in totalPages" :key="index" :class="{ 'active': current == item }">
        <div v-if="node.indexOf(item) != -1" class="point"></div>
      </div>
      <div @click="nextPage">下一页</div>
    </div>
  </div>
</template>
 
<script>
export default {
  name: 'Pagination',
  props: {
    totalPages: {
      type: Number,
      required: true
    },
    pageSize: {
      type: Number
    }
  },
  data() {
    return {
      current: 1, // 当前选中页
      node: [], // 当前显示的页数组
    }
  },
  methods: {
    prevPage() {
      if (this.current == 1) {
        return
      }
      this.current -= 1
      let noedeIndex = this.node[this.node.length - 1]
      this.$emit('pageChange', this.current)
      if ((noedeIndex - (this.current - 1)) > this.pageSize) {
        this.node.pop() // 删除最后一个
        this.node.unshift(this.current) // 开头插入一个
      }
    },

    nextPage() {
      if (this.current == this.totalPages) {
        return
      }
      this.current += 1
      this.$emit('pageChange', this.current)
      let noedeIndex = this.node[this.node.length - 1]
      // 当前页不等于最后一页,当前页大于等于展示页,当前页大于缓存数组的最后一页(确保重复加入)
      if (this.current > this.pageSize && (this.current > noedeIndex)) {
        this.node.shift() // 删除第一个
        this.node.push(this.current) // 最近最新一个
      }
    },
  },
  mounted() {
    for (let i = 1; i <= this.pageSize; i++) {
      this.node.push(i)
    }
  },
}
</script>

<style lang="less" scoped>
.pagination {
  display: flex;
  width: 100%;
  justify-content: center;
}

.point {
  margin: 0 5px;
  width: 8px;
  height: 8px;
  // margin: -5px 0 0 0;
  border-radius: 50%;
  background: #B5AC97;
  transition: transform 0.3s, background 0.3s;

}

.active .point {
  -webkit-transform: scale3d(1.5, 1.5, 1);
  transform: scale3d(1.5, 1.5, 1);
  // width: 10px;
  // height: 10px;
  background: #FFE6AD;
  box-shadow: 0 0 4px 0 #FFE990;
  animation: 0.3s linear 0s 1 alternate example;

}

@keyframes example {
  0% {
    transform: scale3d(1, 1, 1);
  }

  25% {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.5, 1.5, 1);
  }

  100% {
    transform: scale3d(1.5, 1.5, 1);
  }
}
</style>

2、引用方式

 
<template>
	<div>
		<pagination :total-pages="totalPages" :page-size="9" @pageChange="handlePageChange" />
	</div>
</template>
 
<script>
import Pagination from './views/Pagination.vue'

export default {
	components: {
		Pagination
	},
	data() {
		return {
			totalPages: 25,
		}
	},
	computed: {

	},
	methods: {
		handlePageChange(page) {
			console.log('page: ', page);
		}
	}
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件上传漏洞-upload靶场17-20关

文件上传漏洞-upload靶场17-20关 简介 经过了图片木马的的几个关卡&#xff0c;了解到如何使用图片写入代码的方式&#xff0c;去上传webshell。它们相较于修改后缀的方式&#xff0c;复杂度升级&#xff0c;需要去了解每一种图片类型的编码&#xff0c;可以在图片中去写入&a…

c++ noexcept

引入noexcept原因&#xff1a; 异常规范的检查是在运行期而不是编译期&#xff0c;因此程序员不能保证所有异常都得到了 catch 处理。由于第一点的存在&#xff0c;编译器需要生成额外的代码&#xff0c;在一定程度上妨碍了优化。模板函数中无法使用。赋值函数、拷贝构造函数和…

stable diffusion webui中的sampler

Stable Diffusion-采样器篇 - 知乎采样器&#xff1a;Stable Diffusion的webUI中&#xff0c;提供了大量的采样器供我们选择&#xff0c;例如Eular a&#xff0c; Heum&#xff0c;DDIM等&#xff0c;不同的采样器之间究竟有什么区别&#xff0c;在操作时又该如何进行选择&…

云备份——服务器业务处理模块以及网络通信模块

我们这里由于网络通信模块借助httplib库来完成&#xff0c;因此两个模块合并到一起完成&#xff0c;不熟悉httplib库的老铁可以再看看我之前的文章 云备份——第三方库使用介绍&#xff08;下&#xff09;_爱吃鱼的修猫的博客-CSDN博客 一&#xff0c;业务处理模块设计 我们这里…

移动安全:保护移动设备的 6 种方法

什么是移动安全&#xff1f; 移动安全是一个广泛的术语&#xff0c;涵盖用于保护移动设备上存储和传输的个人和商业信息的所有措施和技术。 移动安全可分为三个关键领域&#xff1a; 物理安全&#xff1a;保护设备本身免遭盗窃或损坏。 软件安全&#xff1a;通常通过使用…

【算法训练-链表 四】【删除】:删除链表的倒数第N个节点、删除有序链表中的重复元素、删除有序链表中的重复元素II

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【删除有序链表中的重复元素】&#xff0c;使用【链表】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c…

全国快递查询接口文档-v2,快递,全球快递,配送,物流管理,物流数据,电子商务

一、接口介绍 支持国内外1500快递物流公司的物流跟踪服务&#xff0c;包括顺丰、圆通、申通、中通、韵达等主流快递公司。同时&#xff0c;支持单号识别快递物流公司、按次与按单计费、物流轨迹返回等功能&#xff0c;以满足企业对快递物流查询多维度的需求。 二、使用案例截…

OJ练习第164题——具有所有最深节点的最小子树

具有所有最深节点的最小子树 力扣链接&#xff1a;865. 具有所有最深节点的最小子树 力扣链接&#xff1a;1123. 最深叶节点的最近公共祖先 题目描述 给定一个根为 root 的二叉树&#xff0c;每个节点的深度是 该节点到根的最短距离 。 返回包含原始树中所有 最深节点 的…

【网络安全】图解 Kerberos:身份认证

图解 Kerberos&#xff1a;身份认证 1.什么是 Kerberos &#xff1f;2.Kerberos 基本概念2.1 基本概念2.2 KDC 3.Kerberos 原理3.1 客户端与 Authentication Service3.2 客户端与 Ticket Granting Service3.3 客户端与 HTTP Service Kerberos 是一种身份认证协议&#xff0c;被…

【进阶篇】MySQL的MVCC实现机制详解

文章目录 0.前言1.基础介绍1.1. 什么是MVCC?1.1. 什么是当前读和快照读&#xff1f;1.1. 当前读&#xff0c;快照读和MVCC的关系1.1. MVCC能解决什么问题&#xff0c;好处是&#xff1f;1.1.1. 提高并发性能1.1.2. 避免死锁1.1.3. 解决脏读、不可重复读和幻读等问题1.1.4. 实现…

Python实现SSA智能麻雀搜索算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

CATIA Composer软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 CATIA&#xff08;Computer-Aided Three-dimensional Interactive Application&#xff09;是一款由法国达索系统公司开发的三维计算机辅助设计&#xff08;CAD&#xff09;软件。它是一种全面的产品开发解决方案&#xff0c;广泛…

linux安装wget命令_linux下载文件到本地命令

1、检查是否有安装wget rpm -qa|grep "wget" 复制 在这里插入图片描述 若存在则移除&#xff0c;以下为移除命令 # 移除wget yum remove wget 复制 2、登录wget官网下载地址&#xff0c;下载最新的wget的rpm安装包到本地 下载地址&#xff1a;http://mirrors.…

Android Jetpack Compose 用计时器demo理解Compose UI 更新的关键-------状态管理(State)

目录 概述1.什么是状态2.什么是单向数据流3.理解Stateless和Stateful4.使用Compose实现一个计数器4.1 实现计数器4.2 增加组件复用性-----状态上提 总结 概述 我们都知道了Compose使用了声明式的开发范式&#xff0c;在这样的范式中&#xff0c;UI的职责更加的单一&#xff0c…

行业追踪,2023-09-06

自动复盘 2023-09-06 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

Informatica使用工作流程及案例1

操作流程 ①定义源 ②定义目标 ③创建映射 ④定义任务 ⑤创建工作流 ⑥工作流调度监控 ⑦查验数据 连接D,并定义源、连接源 D:定义目标 通过源定义目标 D:定义好的目标表的表结构生成到目标数据库EDW层 D:创建映射 W&#xff1a;定义任务 W&#xff1a;执行工作流…

第3章 【MySQL】字符集和比较规则

3.1 字符集和比较规则简介 3.1.1 字符集简介 如何存储字符串&#xff1f;需要建立字符与二进制数据的映射关系。建立这个关系需要&#xff1a; 1.把哪些字符映射成二进制数据&#xff1f; 2.怎么映射&#xff1f; 将一个字符映射成一个二进制数据的过程也叫做 编码 &#…

【CI/CD】Rancher CD过程--20230906

gitlab设定CICD的变量 HARBOR_PASSWORD&#xff1a;密码HARBOR_USER&#xff1a;工号K8S_TOKEN&#xff1a;Bearer rancher key K8S_WORKLOAD_URL&#xff1a;选择【View in API】的URL&#xff0c;并非workload的URL。 准备json.txt 选择workload&#xff0c;进入【View i…

用户案例 | 蜀海供应链基于 Apache DolphinScheduler 的数据表血缘探索与跨大版本升级经验

导读 蜀海供应链是集销售、研发、采购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业。2021年初&#xff0c;蜀海信息技术中心大数据技术研发团队开始测试用DolphinScheduler作为数据中台和各业务产品项目的任务调度系统工具。本文主要分享了蜀海供应链在海…

Linux——(第五章)用户管理

目录 一、概述 二、基本操作 1.添加用户 2.指定/修改密码 3.删除用户 4.查询用户信息 5.切换用户 6.查看创建了那些用户 7.查看登录用户信息 8.设置普通用户具有root权限 9.用户组 10.修改组 11.用户和组的相关文件 一、概述 Linux系统是一个多用户多任务的操作系…