113 lines
3.2 KiB
Vue
113 lines
3.2 KiB
Vue
<template>
|
||
<div class="preview-container">
|
||
<el-card shadow="hover" header="波浪指令效果(v-waves)作用于 btn">
|
||
<el-row class="mb10" style="color: #808080">可选参数 v-waves=" |light|red|orange|purple|green|teal"</el-row>
|
||
<div class="flex-warp">
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves>默认效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="primary" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'light'">light 效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="success" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'red'">red 效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="info" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'orange'">orange 效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="warning" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'purple'">purple 效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="danger" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'green'">green 效果</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-warp-item">
|
||
<div class="flex-warp-item-box">
|
||
<el-button type="primary" size="small" icon="iconfont icon-bolangnengshiyanchang" v-waves="'teal'">teal 效果</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-card>
|
||
<el-card shadow="hover" header="波浪指令效果(v-waves)作用于 div" class="mt15">
|
||
<div class="waterfall-first">
|
||
<div class="waterfall-first-item" v-for="v in 12" :key="v" v-waves>
|
||
<div class="w100 h100 flex">
|
||
<span class="flex-margin">{{ v }}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-card>
|
||
</div>
|
||
</template>
|
||
|
||
<script lang="ts">
|
||
import { toRefs, reactive } from 'vue';
|
||
export default {
|
||
name: 'pagesWaves',
|
||
setup() {
|
||
const state = reactive({});
|
||
return {
|
||
...toRefs(state),
|
||
};
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.preview-container {
|
||
.flex-warp {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-content: flex-start;
|
||
margin: 0 -5px;
|
||
.flex-warp-item {
|
||
padding: 5px;
|
||
.flex-warp-item-box {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
.waterfall-first {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(188px, 1fr));
|
||
grid-gap: 0.25em;
|
||
grid-auto-flow: row dense;
|
||
grid-auto-rows: 20px;
|
||
.waterfall-first-item {
|
||
width: 100%;
|
||
background: var(--color-primary);
|
||
color: #ffffff;
|
||
transition: all 0.3s ease;
|
||
border-radius: 3px;
|
||
&:nth-of-type(3n + 1) {
|
||
grid-row: auto / span 5;
|
||
}
|
||
&:nth-of-type(3n + 2) {
|
||
grid-row: auto / span 6;
|
||
}
|
||
&:nth-of-type(3n + 3) {
|
||
grid-row: auto / span 8;
|
||
}
|
||
&:hover {
|
||
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
|
||
transition: all 0.3s ease;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|