uniapp實(shí)現(xiàn)紅包動(dòng)畫(huà)效果代碼實(shí)例(vue3)
效果演示
首先安裝CSS動(dòng)畫(huà)庫(kù)animate.css依賴(lài)
yarn add animate.css
打開(kāi)main.ts文件引入
import 'animate.css'
這兩張圖片放入static文件夾下
用到的圖片red1.png
用到的圖片red2.png
紅包整體主要分三部分 紅包頭部 中部 底部
<template> <view> <button @tap="red = true">顯示紅包</button> </view> <!-- 紅包特效遮罩層 --> <view v-show="red" class="cover"> <!-- 紅包整體 --> <view class="redBig animate__animated animate__bounceIn" :key="redIndex"> <!-- 頭部 --> <view :animation="redHead" class="redBigHead"> <image @tap="redHeadAnimation" class="" src="/static/red1.png" mode=""></image> </view> <!-- 中間 --> <view :animation="redMid" class="redBigMid"> <view class="text1"> 恭喜您獲得了 </view> <view class="text2"> 100.00 </view> <view class="text3"> 紅包余額可去錢(qián)包查詢(xún) </view> </view> <!-- 底部 --> <view class="redBigBottom"> <!-- 打開(kāi)紅包后展示 --> <view @tap="redBagAnimationRenew" v-show="redBottom" class="button animate__animated animate__bounceIn"> 開(kāi)心收下 </view> </view> </view> </view> </template>
使用uni.createAnimation()創(chuàng)建動(dòng)畫(huà)實(shí)例并進(jìn)行相關(guān)操作具體查看官方文檔
<script setup lang="ts"> import { ref, getCurrentInstance } from 'vue' import { onShow } from '@dcloudio/uni-app' const { proxy } = getCurrentInstance() as any //紅包動(dòng)畫(huà) let red = ref(false) //紅包顯示 let redIndex = ref(0) //紅包組件刷新 onShow(() => { let animation = uni.createAnimation() proxy.animation = animation }) //頭部動(dòng)畫(huà) let redHead = ref({}) function redHeadAnimation() { proxy.animation.translateY(-300).opacity(0).step({ duration: 500, timingFunction: 'ease-in-out', }) redHead.value = proxy.animation.export() redBottom.value = true setTimeout(() => { redMidAnimation() }, 300) } //中部動(dòng)畫(huà) let redMid = ref({}) function redMidAnimation() { proxy.animation.translateY(-120).opacity(1).step({ duration: 500, timingFunction: 'ease-in-out', }) redMid.value = proxy.animation.export() } //紅包底部按鈕顯示 let redBottom = ref(false) //重置紅包 function redBagAnimationRenew() { red.value = false redBottom.value = false redHead.value = {} redMid.value = {} redIndex.value++ } </script>
除了紅包底部 頭部和中部需要定位
<style lang="scss"> .cover { position: fixed; left: 0; top: 0; bottom: 0; right: 0; background: rgba(000, 000, 000, 0.5); display: flex; align-items: center; justify-content: center; } .redBig { position: relative; display: flex; flex-direction: column; align-items: center; } .redBigHead { position: absolute; z-index: 2; image { width: 550rpx; height: 440rpx; } } .redBigMid { width: 508rpx; height: 350rpx; background-color: #fff; border-radius: 24rpx; display: flex; flex-direction: column; align-items: center; color: #FF4545; position: absolute; z-index: 0; margin-top: 260rpx; opacity: 0; .text1 { margin-top: 20rpx; font-size: 32rpx; } .text2 { margin-top: 30rpx; font-size: 70rpx; } .text3 { margin-top: 30rpx; } } .redBigBottom { width: 550rpx; height: 331rpx; background-image: url('../../static/red2.png'); background-size: 100% 100%; margin-top: 280rpx; z-index: 1; .button { background: linear-gradient(to bottom, #FEE3AD 50%, #FEB05C); color: #BC0D0D; margin-left: 84rpx; margin-right: 84rpx; padding-top: 30rpx; padding-bottom: 30rpx; border-radius: 100rpx; text-align: center; margin-top: 150rpx; } } </style>
總結(jié)
到此這篇關(guān)于uniapp實(shí)現(xiàn)紅包動(dòng)畫(huà)效果的文章就介紹到這了,更多相關(guān)uniapp紅包動(dòng)畫(huà)效果內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何用命令窗口的方式創(chuàng)建Vue項(xiàng)目
這篇文章主要介紹了如何用命令窗口的方式創(chuàng)建Vue項(xiàng)目過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法
下面小編就為大家分享一篇Vuejs在v-for中,利用index來(lái)對(duì)第一項(xiàng)添加class的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Vue3.x源碼調(diào)試的實(shí)現(xiàn)方法
這篇文章主要介紹了Vue3.x源碼調(diào)試的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10mpvue開(kāi)發(fā)音頻類(lèi)小程序踩坑和建議詳解
這篇文章主要介紹了mpvue開(kāi)發(fā)音頻類(lèi)小程序踩坑和建議詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03餓了么UI中el-tree樹(shù)節(jié)點(diǎn)選中高亮的兩種常用方式(highlight-current屬性)
最近新做的項(xiàng)目有用到Element-UI tree組件,下面這篇文章主要給大家介紹了關(guān)于餓了么UI中el-tree樹(shù)節(jié)點(diǎn)選中高亮的兩種常用方式(highlight-current屬性),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12form?表單驗(yàn)證是異步問(wèn)題記錄(推薦)
這篇文章主要介紹了form?表單驗(yàn)證是異步問(wèn)題記錄,通過(guò)實(shí)例代碼介紹了Promise.all 和 Promise.allSettled 區(qū)別,需要的朋友可以參考下2023-01-01Vue 動(dòng)態(tài)添加路由及生成菜單的方法示例
這篇文章主要介紹了Vue 動(dòng)態(tài)添加路由及生成菜單的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06說(shuō)說(shuō)Vue.js中的functional函數(shù)化組件的使用
這篇文章主要介紹了說(shuō)說(shuō)Vue.js中的functional函數(shù)化組件的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02