Vue | Vue.js 实现过渡动画

【CSS基础】10.过度动画transition和动画animation CSS trnasition提供了一种在更改CSS属性时控制动画速度的方法。可以让CSS的属性变化称为一个秩序一段时间的过程,而不是默认的立即生效比如在基础9中我们学到的trnaslate可以让一个元素移动,但瞬间就完成了我们可以利用trnasition让这个完成的过程有一定的动画效果属性可以控制的内容哪些属性需要进度过度动画何时开始,可以延时触发,比如2s后再进行动画持续多久(duration)动画的持续时间定义动画(匀速、先快后慢、先慢后快)timinganimation的定义。 阅读详情

🖥️ Vue .js专栏:Vue .js 初级知识
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


目录

一、认识Vue的动画原理

认识动画

Vue的transition动画

Transition组件的原理

二、动画中常见类的作用

过渡动画class

class添加的时机和命名规则

三、animation动画实现

过渡css动画

同时设置过渡和动画(一般不设置)

四、动画的常见属性设置

显示的指定动画时间

过渡的模式 mode

动态组件的切换

appear初次渲染

五、列表元素动画组实现

认识列表的过渡

列表过渡的基本使用

六、列表元素的移动动画

列表元素的移动动画


一、认识Vue的动画原理

认识动画

在开发中,我们想要给一个组件的 显示和消失添加某种过渡动画,可以很好的增加用户体验

        React框架本身并没有提供任何动画相关的API 所以在React中使用过渡动画需要使用第三方库 react-transition-group

        Vue中为我们提供 一些内置组件和对应的API 来完成动画,利用它们我们可以 方便的实现过渡动画效果

来看看效果:

JavaScript
<template>
  <div class="app">
    <!-- 没有任何动画效果 太深硬了 -->
    <div>
        <button @click="isShow = !isShow">切换</button>
    </div>

    <!-- 点击切换按钮 在显示和隐藏 -->
    <!-- Vue 给的内置组件 -->
    <!-- transition 不是帮你做动画的,是在恰当的时机帮你做恰当的事 -->
    <transition>
      <h2 v-if="isShow">哈哈哈哈</h2>
    </transition>
  </div>
</template>

<script setup>
import { ref } from "vue";

const isShow = ref(false);
</script>

<style scoped>

h2{
    display: inline-block;
}

/* 开始进入为0 */
.v-enter-from,
.v-leave-to {
  opacity: 0;
  transform: scale(0.6);
}

/* 进入后为1 */
.v-enter-to,
/* 从哪里开始离开 */
.v-leave-from {
  opacity: 1;
  transform: scale(1);
}

/* 进入的过程 进行什么操作 */
.v-enter-active,
.v-leave-active {
  transition: all 2s ease;
}
</style>

没有动画的情况下,整个内容的显示和隐藏都会非常的生硬:

        如果我们希望给 单元素或者组件实现过渡动画,可以 使用 transition内置组件 来完成动画

Vue的transition动画

Vue提供了transition的封装组件,在一下情况下,可以给任何元素添加进入/离开 过渡

        条件渲染(使用v-if)条件展示(使用v-show)

        动态组件

        组件根节点

Transition组件的原理

Vue自动给h2元素添加了动画 因为什么呢?

当插入或删除 包含在transition组件中的元素时 Vue将会做以下处理:

        1.自动嗅探 目标元素是否应用了CSS过渡或动画,如果有 那么 在恰当的时机添加/删除 CSS类名

        2 如果 transition 组件提供了 Js钩子函数, 这些钩子函数在恰当的时机被调用

        3 如果 没有找到Js钩子并且也没有检测到CSS过渡/动画 DOM插入 删除操作将会立即执行

二、动画中常见类的作用

过渡动画class

事实上,Vue帮助我们在这些class之间来回切换完成的动画:

V-enter-from: 定义进入过渡的开始状态;

        在元素被插入之前生效,在元素被插入之后的下一帧移除.

V-enter-active: 定义进入过渡生效时的状态.

        在整个过渡的阶段中应用,在元素被插入之前,在过渡/动画完成之后移除.这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

V-enter-to: 定义进入过渡的结束状态

        在元素被插入之后下一帧生效(与此同时v-enter-from被移除) 在过渡/动画完成之后移除.

V-leave-from: 定义离开过渡的开始状态.

        在离开过渡被触发时立刻生效,下一帧被移除

v-leave-active:定义离开过渡生效时的状态

        在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

v-leave-to:离开过渡的结束状态

        在离开过渡被触发之后下一帧生效 (与此同时 v-leave-from 被删除),在过渡/动画完成之后移除。

class添加的时机和命名规则

 

class的name命名规则如下:

        如果我们使用的是一个没有name的transition,那么所有的class是以 v- 作为默认前缀;

        如果我们添加了一个name属性,比如 <transtion name="xXiong">,那么所有的class会以 xXiong- 开头

三、animation动画实现

过渡css动画

我们不仅可以用transition来实现动画效果,也可以通过 animation来实现

 

同时设置过渡和动画(一般不设置)

Vue为了知道过渡的完成,内部在监听transitionend或animationend 到底使用哪一个取决于元素应用的CSS规则.

        如果我们 只是使用了其中的一个,那么Vue能自动识别类型并设置监听;

如果我们同时使用了过渡和动画呢?

        并且在这个情况下可能某一个动画执行结束时,另外一个动画还没有结束

        在这种情况下,我们可以设置 type 属性为 animation 或者 transition 来明确的告知Vue监听的类型

四、动画的常见属性设置

显示的指定动画时间

我们可以显示的来 指定过渡的时间 通过 duration属性

duration可以设置两种类型的值:

        number类型:同时设置进入和离开的过渡时间

        object类型:分别设置进入和离开的过渡时间

JavaScript
<transition name="xXiong" type="animation" :duration="1000">
// 单位是 毫秒
// 对象形式
<transition name="xXiong" type="animation" :duration="{enter:800,leave:1000}">

过渡的模式 mode

我们来看看当前的动画在两个元素之间切换的时候存在的问题:

我们会发现 Hello World 和 你好啊李银河 是 同时存在的

        因为 默认情况下 进入和离开动画 是同时发生的

        如果确实我们希望达到这个效果,那么是没问题的;

但如果我们 不希望同时执行进入和离开动画,那么我们需要设置transition的过渡模式

        In-out: 新元素先进行过渡,完成后当前元素过渡离开

        Out-in: 当前元素先进行过渡,完成后新元素过渡进入

动态组件的切换

上面说的同样适用于 动态组件

JavaScript
<transition name="xXiong" mode="out-in">
      <component :is="isShow ? Home : About"></component>
</transition>
// 如果想使用字符串 那么就要用 Options API

appear初次渲染

默认情况下,首次渲染的时候是没有动画的,如果我们希望给他添加上去动画,那么就可以增加另外一个属性appear:

JavaScript
<transition name="xXiong" mode="out-in" appear>
      <component :is="isShow ? Home : About"></component>
</transition>

五、列表元素动画组实现

认识列表的过渡

到现在,过渡动画 我们主要是 针对单个元素或组件的

        要么是 单个节点

        要么是 同一时间渲染多个节点中的一个

如果我们希望 渲染的是 一个列表, 并且 该列表中添加删除数据也希望有动画执行 怎么办?

        我们要使用<transition-group>组件 来完成

使用<transition-group> 有如下的特点:

        默认情况下,它不会渲染一个元素的包裹器,但是你可以指定一个元素并以 tag attribute 进行渲染

        过渡模式不可用,因为我们不再相互切换特有的元素

        内部元素总是需要提供唯一的 key attribute 值

        CSS 过渡的类将会应用在内部的元素中,而不是这个组/容器本身

列表过渡的基本使用

JavaScript
<template>
  <div class="app">
    <button @click="addNumber">添加数字</button>
    <button @click="removeNumber">删除数字</button>

    <transition-group tag="div" name="xXiong">
      <!-- 必须要加 key -->
      <template v-for="item in nums" :key="item">
        <span> {{ item }} </span>
      </template>
    </transition-group>
    
  </div>
</template>

<script setup>
import { reactive } from 'vue';

const nums = reactive([0,1,2,3,4,5,6,7,8,9])

const addNumber = () =>{
  nums.splice(randomIndex(),0,nums.length)
}
  
const removeNumber = () =>{
  nums.splice(randomIndex(),1)
}

const randomIndex = () =>{
  return Math.floor(Math.random() * nums.length)
}

</script>

<style scoped>
span {
  margin-right: 10px;
  display: inline-block;
}

.xXiong-enter-from,
.xXiong-leave-to {
  opacity: 0;
  transform: translateY(30px);
}

.xXiong-enter-to,
.xXiong-leave-from {
  opacity: 1;
  transform: translateY(0);
}

.xXiong-enter-active,
.xXiong-leave-active {
  transition: all 2s ease;
}
</style>

六、列表元素的移动动画

列表元素的移动动画

上面的这个案例中, 虽然新增和删除节点都有动画,但是对于那些其他需要移动的节点是没有动画的

        可以通过使用一个 新增的v-move的class来完成动画

        它会在元素改变位置的过程中应用

        像之前的名字一样,可以通过name来自定义前缀

transition 和 animation 的区别 Transition 主要用于在元素状态发生变化时实现平滑的过渡效果。Transition 可以定义元素的属性变化过程中的动画效果。Transition 可以应用于任何 CSS 属性,并且可以指定不同的持续时间、延迟时间、过渡函数和重复次数等参数。Transition 的实现是通过在属性值发生变化时逐步改变属性值,从而创建平滑的过渡效果。Transition 可以通过:hover、:focus、:active 等伪类选择器或 JavaScript 控制元素状态来触发。 阅读详情

相关推荐

详细讲一下Vue3中的Transition组件用法(动画)

自定义动画

m0_73574455的博客 1599

vue 中 animation 使用

简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果。 虽然借助 animate.css 能够很方便、快速的制作 CSS3 动画效果,但还是建议看看 animate.css 的代码,也许你能从中学到一些东西。 兼容 浏览器兼容:当然是只兼容支持 CSS3 animat

yutu75的博客 6994

【Vue.js 3.0源码】Transition 组件:过渡动画的实现原理是怎样的?

作为一名前端开发工程师,平时开发页面少不了要写一些过渡动画,通常可以用CSS脚本来实现,当然一些时候也会使用JavaScript操作DOM来实现动画。那么,如果我们使用Vue.js技术栈,有没有好的实现动画的方式呢?Vue.js提供了内置的Transition组件,它可以让我们轻松实现动画过渡效果。Transition组件是如何渲染的,如何执行过渡动画和相应的钩子函数的,以及当两个视图切换时,模式的工作原理是怎样的。...

吉帅振博客 1135

Vue中实现过渡动画

目前为止,过渡动画我们只要是针对单个元素或者组件的:要么是单个节点;要么是同一时间渲染多个节点中的一个;那么如果希望渲染的是一个列表,并且该列表中添加删除数据也希望有动画执行呢?这个时候我们要使用组件来完成;使用有如下的特点:默认情况下,它不会渲染成任何一个元素,但是你可以指定一个元素并以 tag attribute 让他进行渲染;过渡模式不可用,因为我们不再相互切换特有的元素;...

m0_71485750的博客 3460

Vue.js 动画效果实现:过渡与动画组件的使用技巧

为了提高代码的复用性,我们可以将常用的动画效果封装成自定义指令或组件。例如,我们可以创建一个自定义指令来实现元素的淡入动画:fadeIn: {});});使用时,只需在元素上添加v-fadeIn指令即可:<template><div></div>Vue.js 的过渡与动画组件为开发者提供了强大且灵活的动画解决方案,通过合理运用这些组件和技巧,我们可以轻松实现各种复杂的动画效果,提升 Web 应用的用户体验。

数字魔方操控师的博客 1092

Vue.js 过渡动画:实现展开和收起效果

通过使用 Vue 过渡组件和 CSS 过渡,我们可以轻松地实现展开和收起的动画效果。在上述示例中,我们创建了一个简单的 Vue 组件,通过点击按钮来控制内容的展开和收起,并使用 CSS 过渡来实现动画效果。通过调整过渡的样式和效果,可以实现更多炫酷的展开和收起动画效果。其中,Vue 的过渡系统提供了一种简单而强大的方式来实现动态的展开和收起效果。在上面的代码中,我们使用了一个按钮来控制内容的展开和收起,通过点击按钮触发。接下来,我们创建一个简单的 Vue 组件,用于展示可展开和收起的内容。

HsvvDatabase的博客 815

Vue.js 中的动画与过渡效果实现

在 Vue.js 中利用过渡效果和动画,不仅能够提升网页的用户体验,还有助于让你的应用更具吸引力。上述示例展示了如何使用 Vue 的组件以及 JavaScript 钩子来实现简单和复杂的动画效果。通过这些强大的工具,创建流畅的用户交互体验变得轻而易举。无论是应用于简单的用户提示,还是复杂的动态效果,掌握好 Vue.js 的动画与过渡特性都将为你的前端开发涯增添一笔重要的技能。希望本文能让你对 Vue.js 中的动画与过渡效果有更深刻的理解,并在你的项目中加以应用!

有我更精彩的博客 1599

避坑指南:Zabbix poller进程100%占用的5种常见原因及解决方案

本文深入剖析了Zabbix poller进程占用率高达100%的五大常见原因,包括监控项与进程数不匹配、不可达主机资源浪费、数据库性能瓶颈、监控项配置不合理以及版本缺陷。文章提供了从系统化诊断到针对性解决方案的完整指南,并重点介绍了如何通过优化zabbix_server.conf中的StartPollers等关键参数进行有效调优,帮助运维人员从根本上解决这一经典性能问题。

7z8x2c4v6b9的博客 250

vue中js钩子函数实现动画过渡

今天看了vue中js钩子函数实现动画,照着敲了一遍发现只有enter的淡入能实现,淡出没有动画效果,即使在leave()中移入done用settimeout延迟也仅仅是延迟的触发时间,并没有出现动画效果。后来经过搜索发现是enter()中缺少了一行代码 el.offsetWidth ,关于这行代码的作用参考文档里的大佬有解释,本人还不是很明白就不乱解释了,原文章链接: vue动画过渡 javascript钩子函数详解_V v vae的博客-优快云博客_过渡动画钩子函数 最终实现的代码如下: <t

qq_44361943的博客 854

VOS3000线路对接、路由配置与路由分析操作教程

通过本教程,你应该已经掌握了VOS3000的线路对接、路由配置和路由分析的基本操作。添加备用路由:为常用前缀添加备用路由,确保在主路由失效时呼叫仍能正常进行。进入线路管理:点击“系统管理” -> “线路管理” -> “添加线路”。查看日志:在“系统日志”中查看路由选择情况,确保路由配置正确。失败原因:查看失败呼叫的原因(如“无应答”、“线路忙”等)。线路选择:选择之前添加的线路(如“供应商A”)。保存并启用:填写完毕后,点击“保存”并启用路由。路由名称:自定义一个名称(如“路由A”)。

AI_wx_3307623172的博客 2970

“开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用

使用Kotlin语言以及Jetpack Compose UI库开发,主要就是写Composable函数,显示棋盘、棋子和一些按钮,响应用户的点击和滑动操作,以及保存和恢复数据。但我针对本应用是用于做题的特殊需求,对该算法库做了一个简单的JNI层封装,方便UI前端Kotlin代码的调用。

weixin_44120030的博客 2396

Vue-notification动画完全解析:从CSS过渡到Velocity.js的高级动画实现

Vue-notification是一款专为Vue.js 2打造的通知组件库,它不仅提供了简洁的通知展示功能,更通过灵活的动画系统为用户带来流畅的视觉体验。本文将深入解析该库的动画实现机制,从基础的CSS过渡到高级的Velocity.js动画,帮助开发者全面掌握通知组件的动态效果配置。 ## 通知组件的动画架构设计 Vue-notification的动画系统采用了组件化设计,将不同动画实现方式封

gitblog_00642的博客 764

AI Agent生产环境压测指南:并发、延迟与资源瓶颈定位

去年我接触了不下10个AI Agent上线翻车的案例:有做智能客服的公司双11当天流量暴涨3倍,Agent服务直接雪崩,用户咨询全超时,损失超200万订单;有做企业内部RAG Agent的团队,上线后100人同时查询就把向量库打挂,还连累了其他业务的数据库;还有做多智能体系统的团队,压测只测了单请求性能,上线后多Agent交互超时率高达30%。

软件工程实践的博客 171

Vue JS实现过渡动画

&lt;template&gt; &lt;div id="app"&gt; &lt;!-- &lt;button v-on:click="show = !show"&gt;toggle&lt;/button&gt; --&gt; &lt;button v-on:click="show=!show"&gt;toggle&lt

从盲流子到程序员 513

即插即用系列(代码实践) | CVPR 2025 FDConv:频域动态卷积,打破密集预测任务的参数效率瓶颈

本文提取自 CVPR 2025 的最新底层算子革新论文《Frequency Dynamic Convolution for Dense Image Prediction》。近年来,动态卷积(Dynamic Convolution)通过融合多个并行卷积核极大地提升了模型性能,但研究表明:这些并行卷积核在频域上的响应高度相似,导致了极其严重的参数浪费,且缺乏对不同频率特征的自适应能力。本文复现了该网络的核心架构——FDConv(频率动态卷积)。该方案创造性地在傅里叶域(Fourier Domain)中学习固定参

分享顶会顶刊论文即插即用模块 111

Codex 100个真实案例 - 用AI生成建筑平面图SVG(室内设计师的新武器)

本案例用 Codex 生成一套完整的 Python 脚本,自动绘制 SVG 格式的建筑平面图。我们会设计一个90平两室一厅的户型——客厅、主卧、次卧、厨房、卫生间一应俱全,还会自动摆放家具(沙发、床、餐桌、橱柜)、标注尺寸和面积、绘制水电路走向、生成多种配色方案。最终输出的 SVG 文件可以直接用浏览器打开展示,也可以转成 PNG 交给客户。室内设计师看了都说好!

yueyeguzhuo的专栏 761

vue 之 Transition && 各种动画实现,一文让你会动画

在开发中,如果没有动画的话,整个页面内容的显示和隐藏会非常的生硬!不好看,为了给予一定的用户体验,进入今天的主题 React框架本身并没有提供任何动画相关的API,所以如果需要使用的话可以使用一个第三方库react-transition-group Vue中为我们提供了一些内置的组件和对应的API来完成动画 一、Transition组件的原理 当插入或删除包含在transition组件中的元素时,vue将会做以下处理 就是会自动把类加入到transition组件下的根元素中 添加或者删..

玄鱼殇 2万+

YOLOv11缝合添加注意力机制:添加YOLO-Face的SEAM到并行通道空间注意力机制【附代码】

在目标检测的实际应用中,物体遮挡是一个严重影响检测精度的难点。本文将基于YOLOv11架构,探索融合YOLO-Face中提出的SEAM注意力机制以提升对遮挡物体的感知能力,并在此基础上提出一种轻量化双路径并行注意力机制C2PSA,进一步提升检测性能。

一键难忘的博客 1527

使用vue实现css过渡和动画

一、过渡和动画得区别 过渡:通常用来表示元素上属性状态的变化。 动画:通常用来表示元素运动的情况。 二、使用Vue实现基础得css过渡与动画 1. 动画 /* css */ @keyframes leftToRight { 0% { transform: translateX(-100px); } 50% { transform: translateX(-50px); } 100% { transfor

qq_34771938的博客 4455

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2306

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[Vue] 24.Vue.js过渡与动画:实现基础的CSS过渡与动画效果

Vue实现过渡与动画

u014627255的博客 172

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Vue.js从入门到就业[第17讲]:Vue.js 动画和过渡效果,一文带你学习!

在现代 Web 开发中,动画和过渡效果不仅能显著提升用户体验,还能增强页面的互动性和动态感。对于用户而言,动画能够将静态页面转变为充满活力的交互界面,而对于开发者而言,合理使用动画和过渡效果能让应用变得更加吸引人并提高用户的使用粘性。Vue.js 作为一款非常流行的前端框架,提供了强大的动画和过渡功能。通过内置的指令、钩子函数、以及对第三方动画库的集成,开发者可以非常轻松地在 Vue 应用中实现流畅的动画效果,极大地提升用户体验。本期专栏将重点讨论 Vue.js 中的动画和过渡效果。

**My Coding Family** 1130

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Vue.js 动画与过渡效果实战

title: Vue.js 动画与过渡效果实战 date: 2024/6/4 updated: 2024/6/4 description: 这篇文章介绍了如何在网页设计中使用过渡动画和组件效果,以及如何利用模式和列表展示信息。还提到了使用钩子实现组件间通信的方法。 categories: 前端开发 tags: 过渡 动画 组件 效果 模式 列表 钩子 第一部分:基础知识 第1章:Vue.js 过渡系统简介 Vue.js 提供了过渡效果的支持,使得在不同状态之间切换时能够以更加生动和用户友好的方

https://blog.cmdragon.cn/ 1130

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》040-Vue过渡动画

在现代 web 开发中,用户体验的好坏往往直接影响到用户的满意度和网站的使用率。动画效果作为提升用户体验的重要手段,可以让界面更加生动和互动。Vue.js 作为一个渐进式框架,不仅提供了强大的数据绑定功能,还使得实现过渡动画变得简单而直观。本篇文章将深入探讨 Vue.js 中的过渡动画。我们将介绍 Vue 自带的 组件,如何利用它来为元素的进入、离开和状态变化添加流畅的过渡效果。通过具体的实例,我们将展示如何使用 CSS 过渡、动画以及 JavaScript 钩子函数,来创建多种样式的动画效果。 🦋2

愚公智库 12万+

vue如何使用原生js写动画效果_vue元素实现动画过渡效果实例详解

这篇文章主要介绍了vue元素实现动画过渡效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧1 在 vue 中,使用 标签包含着的单个子元素在使用 v-show 或v-if切换显示隐藏前,会先判断是否有对应的class样式能匹配到该子元素上:red {background-color: red; width: 100px; height: 100px;}redv-lea...

weixin_36323390的博客 502
上一篇: 前端经典面试题 | Computed 和 Watch 的区别
下一篇: 微信小程序 | 小程序开发
评论 84
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderHing[专注前端]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值