遮罩层

v-overlay 组件用于强调特定元素或其中的一部分。 它向用户发出应用程序内状态更改的信号,可用于创建加载程序,对话框等。

用例

以最简单的形式,v-overlay 组件将在您的应用程序上添加暗淡的图层。

template script


  1. <template>
  2. <div class="text-center">
  3. <v-btn
  4. color="error"
  5. @click="overlay = !overlay"
  6. >
  7. Show Overlay
  8. </v-btn>
  9. <v-overlay :value="overlay">
  10. <v-btn
  11. icon
  12. @click="overlay = false"
  13. >
  14. <v-icon>mdi-close</v-icon>
  15. </v-btn>
  16. </v-overlay>
  17. </div>
  18. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. overlay: false,
  5. }),
  6. }
  7. </script>

Overlays(遮罩层) - 图1

API

从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。

Overlays(遮罩层) - 图2

实战场

template script


  1. <template>
  2. <v-row justify="center">
  3. <v-col cols="12">
  4. <v-row align="center">
  5. <v-btn
  6. class="mt-12"
  7. color="primary"
  8. @click="overlay = !overlay"
  9. >
  10. Show Overlay
  11. </v-btn>
  12. <v-overlay
  13. :absolute="absolute"
  14. :opacity="opacity"
  15. :value="overlay"
  16. :z-index="zIndex"
  17. >
  18. <v-btn
  19. color="primary"
  20. @click="overlay = false"
  21. >
  22. Hide Overlay
  23. </v-btn>
  24. </v-overlay>
  25. </v-row>
  26. </v-col>
  27. <v-row justify="center">
  28. <v-radio-group row>
  29. <v-checkbox
  30. v-model="absolute"
  31. label="Absolute"
  32. ></v-checkbox>
  33. <v-checkbox
  34. v-model="overlay"
  35. class="mx-6"
  36. label="value"
  37. ></v-checkbox>
  38. <v-text-field
  39. v-model="opacity"
  40. label="Opacity"
  41. max="1"
  42. min="0"
  43. step=".01"
  44. style="width: 125px"
  45. type="number"
  46. @keydown="false"
  47. ></v-text-field>
  48. <v-text-field
  49. v-model="zIndex"
  50. label="z-index"
  51. max="9999"
  52. min="-9999"
  53. step="1"
  54. style="width: 125px"
  55. type="number"
  56. @keydown="false"
  57. ></v-text-field>
  58. </v-radio-group>
  59. </v-row>
  60. </v-row>
  61. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. absolute: false,
  5. opacity: 0.46,
  6. overlay: false,
  7. zIndex: 5,
  8. }),
  9. }
  10. </script>

Overlays(遮罩层) - 图3

示例

下面是一些简单到复杂的例子。

绝对定位

absolute 遮罩层被放置在绝对位置,并包含在父元素中。

template script


  1. <template>
  2. <v-row align="center" justify="center">
  3. <v-card height="300" width="250">
  4. <v-row justify="center">
  5. <v-btn
  6. color="success"
  7. class="mt-12"
  8. @click="overlay = !overlay"
  9. >
  10. Show Overlay
  11. </v-btn>
  12. <v-overlay
  13. :absolute="absolute"
  14. :value="overlay"
  15. >
  16. <v-btn
  17. color="success"
  18. @click="overlay = false"
  19. >
  20. Hide Overlay
  21. </v-btn>
  22. </v-overlay>
  23. </v-row>
  24. </v-card>
  25. </v-row>
  26. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. absolute: true,
  5. overlay: false,
  6. }),
  7. }
  8. </script>

Overlays(遮罩层) - 图4

透明度

opacity 允许您自定义 v-overlay 组件的透明度。

template script


  1. <template>
  2. <v-row align="center" justify="center">
  3. <v-card height="300" width="250">
  4. <v-row justify="center">
  5. <v-btn
  6. color="orange lighten-2"
  7. class="mt-12"
  8. @click="overlay = !overlay"
  9. >
  10. Show Overlay
  11. </v-btn>
  12. <v-overlay
  13. :absolute="absolute"
  14. :opacity="opacity"
  15. :value="overlay"
  16. >
  17. <v-btn
  18. color="orange lighten-2"
  19. @click="overlay = false"
  20. >
  21. Hide Overlay
  22. </v-btn>
  23. </v-overlay>
  24. </v-row>
  25. </v-card>
  26. </v-row>
  27. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. absolute: true,
  5. opacity: 1,
  6. overlay: false,
  7. }),
  8. }
  9. </script>

Overlays(遮罩层) - 图5

Z 索引

使用 z-index 可以轻松更改 v-overlay 组件的堆栈顺序。

template script


  1. <template>
  2. <v-row justify="center">
  3. <v-btn
  4. class="white--text"
  5. color="teal"
  6. @click="overlay = !overlay"
  7. >
  8. Show Overlay
  9. </v-btn>
  10. <v-overlay
  11. :z-index="zIndex"
  12. :value="overlay"
  13. >
  14. <v-btn
  15. class="white--text"
  16. color="teal"
  17. @click="overlay = false"
  18. >
  19. Hide Overlay
  20. </v-btn>
  21. </v-overlay>
  22. </v-row>
  23. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. overlay: false,
  5. zIndex: 0,
  6. }),
  7. }
  8. </script>

Overlays(遮罩层) - 图6

Charcoal Vuetify Beanie

Stay warm with the new Premium Knit Vuetify Beanie available in black, navy and charcoal.

ads by Vuetify

](https://store.vuetifyjs.com/product/premium-charcoal-vuetify-beanie?ref=vuetifyjs.com)

加载器

使用 v-overlay 作为背景,添加进度组件来轻松创建自定义加载器。

template script


  1. <template>
  2. <div class="text-center">
  3. <v-btn
  4. color="deep-purple accent-4"
  5. class="white--text"
  6. @click="overlay = !overlay"
  7. >
  8. Launch Application
  9. <v-icon right>mdi-open-in-new</v-icon>
  10. </v-btn>
  11. <v-overlay :value="overlay">
  12. <v-progress-circular indeterminate size="64"></v-progress-circular>
  13. </v-overlay>
  14. </div>
  15. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. overlay: false,
  5. }),
  6. watch: {
  7. overlay (val) {
  8. val && setTimeout(() => {
  9. this.overlay = false
  10. }, 3000)
  11. },
  12. },
  13. }
  14. </script>

Overlays(遮罩层) - 图7

高级版

使用 v-hover,我们可以在信息卡上添加漂亮的稀松布,以及用户可以执行的其他操作。

template script


  1. <template>
  2. <v-hover>
  3. <template v-slot:default="{ hover }">
  4. <v-card
  5. class="mx-auto"
  6. max-width="344"
  7. >
  8. <v-img src="https://cdn.vuetifyjs.com/images/cards/forest-art.jpg"></v-img>
  9. <v-card-text>
  10. <h2 class="title primary--text">Magento Forests</h2>
  11. Travel to the best outdoor experience on planet Earth. A vacation you will never forget!
  12. </v-card-text>
  13. <v-card-title>
  14. <v-rating
  15. :value="4"
  16. dense
  17. color="orange"
  18. background-color="orange"
  19. hover
  20. class="mr-2"
  21. ></v-rating>
  22. <span class="primary--text subtitle-2">64 Reviews</span>
  23. </v-card-title>
  24. <v-fade-transition>
  25. <v-overlay
  26. v-if="hover"
  27. absolute
  28. color="#036358"
  29. >
  30. <v-btn>See more info</v-btn>
  31. </v-overlay>
  32. </v-fade-transition>
  33. </v-card>
  34. </template>
  35. </v-hover>
  36. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. overlay: false,
  5. }),
  6. }
  7. </script>

Overlays(遮罩层) - 图8