StClickWaveContainer 组件
具有点击波纹动效的容器组件
注意事项
- 该组件中的波纹动效,是通过在触发点击事件时,使用
document.createElement
API 动态创建一个div
元素,并使用相对于组件根元素的绝对定位和位移将该元素的中心点定位在点击位置,然后让该元素执行波纹动画,从而实现点击波纹动效; - 动态创建的
div
元素,会在其动画执行完成后,自动移除; - 动态创建的
div
元素,其z-index
属性的取值为默认值,即没有为其设置z-index
属性;
组件示例
示例代码
vue
<script setup lang="ts">
import {StClickWaveContainer} from 'st-common-ui-vue3'
import {ref} from 'vue'
const bgColor = ref('#efefef')
const speed = ref(1000)
const waveColor = ref('linear-gradient(to right, #ff0052, #ff7a00)')
const waveMaxSize = ref('300px')
const waveInitialOpacity = ref(0.8)
</script>
<template>
<div :style="{height: '300px', backgroundColor: bgColor, borderRadius: '1rem'}">
<StClickWaveContainer
:speed="speed"
:waveColor="waveColor"
:waveMaxSize="waveMaxSize"
:waveInitialOpacity="waveInitialOpacity"
>
<div style="height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;">
<div>speed: {{ speed }}</div>
<div>waveColor: {{ waveColor }}</div>
<div>waveMaxSize: {{ waveMaxSize }}</div>
<div>waveInitialOpacity: {{ waveInitialOpacity }}</div>
</div>
</StClickWaveContainer>
</div>
</template>
组件参数
参数名 | 说明 | 类型 | 默认值 |
---|---|---|---|
width | 组件的宽度,如果传递的参数值为数字,则其单位默认为 px | string | number | '100%' |
height | 组件的高度,如果传递的参数值为数字,则其单位默认为 px | string | number | '100%' |
speed | 波纹动画的执行速度,即执行一次波纹动画所需的时间,单位 ms | number | 1000 |
waveColor | 波纹的颜色 | string | '#fff' |
waveMaxSize | 波纹的最大大小,即波纹动画结束时波纹的大小,如果传递的参数值为数字,则其单位默认为 px | string | number | '100%' |
waveInitialOpacity | 波纹动画执行开始时,波纹的透明度 | number | 0.5 |
组件插槽
插槽名 | 说明 |
---|---|
default | 组件内容区域 |