横幅

v-banner 组件用于通过 1-2 个操作向用户发送中级中断消息。它有两个变量,single-linemulti-line。这些变量在和你的消息和动作一起使用时包含图标。

用例

横幅可以有 1-2 行文本、动作和图标。

Banners(横幅) - 图1

API

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

Banners(横幅) - 图2

示例

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

单行(桌面端)

Single-line VBanner 用于少量信息,推荐仅在桌面分辨率下实现。你可以启用 sticky 属性来保证内容被固定到屏幕上(注意:IE11 不工作)。参阅更多 sticky positioning here

template script


  1. <template>
  2. <v-card>
  3. <v-system-bar></v-system-bar>
  4. <v-toolbar flat>
  5. <v-toolbar-title>My Document</v-toolbar-title>
  6. <v-spacer></v-spacer>
  7. <div>
  8. <v-switch
  9. v-model="sticky"
  10. label="Sticky Banner"
  11. hide-details
  12. ></v-switch>
  13. </div>
  14. </v-toolbar>
  15. <v-banner
  16. single-line
  17. :sticky="sticky"
  18. >
  19. We can't save your edits while you are in offline mode.
  20. <template v-slot:actions>
  21. <v-btn
  22. text
  23. color="deep-purple accent-4"
  24. >Get Online</v-btn>
  25. </template>
  26. </v-banner>
  27. <v-card-text class="grey lighten-4">
  28. <v-sheet
  29. max-width="800"
  30. height="300"
  31. class="mx-auto"
  32. ></v-sheet>
  33. </v-card-text>
  34. </v-card>
  35. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. sticky: false,
  5. }),
  6. }
  7. </script>

Banners(横幅) - 图3

双行(移动端)

Two-line VBanner 能够存储大量数据,用于大量消息。

template


  1. <template>
  2. <v-banner>
  3. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent cursus nec sem id malesuada.
  4. Curabitur lacinia sem et turpis euismod, eget elementum ex pretium.
  5. <template v-slot:actions>
  6. <v-btn text color="primary">Dismiss</v-btn>
  7. <v-btn text color="primary">Retry</v-btn>
  8. </template>
  9. </v-banner>
  10. </template>

Banners(横幅) - 图4

图标插槽

图标插槽允许你明确控制其包含的内容和功能。

template


  1. <template>
  2. <v-banner two-line>
  3. <v-avatar
  4. slot="icon"
  5. color="deep-purple accent-4"
  6. size="40"
  7. >
  8. <v-icon
  9. icon="mdi-lock"
  10. color="white"
  11. >
  12. mdi-lock
  13. </v-icon>
  14. </v-avatar>
  15. Three line text string example with two actions. One to two lines is preferable. Three lines should be considered the maximum string length on desktop in order to keep messages short and actionable.
  16. <template v-slot:actions>
  17. <v-btn text color="deep-purple accent-4">Action</v-btn>
  18. <v-btn text color="deep-purple accent-4">Action</v-btn>
  19. </template>
  20. </v-banner>
  21. </template>

Banners(横幅) - 图5

图标点击事件

横幅上的图标在点击时发出 click:icon 事件,该事件带有自定义图标插槽。

template script


  1. <template>
  2. <v-banner single-line @click:icon="alert">
  3. <v-icon
  4. slot="icon"
  5. color="warning"
  6. size="36"
  7. >
  8. mdi-wifi-strength-alert-outline
  9. </v-icon>
  10. Unable to verify your Internet connection
  11. <template v-slot:actions>
  12. <v-btn
  13. color="primary"
  14. text
  15. >
  16. Connecting Settings
  17. </v-btn>
  18. </template>
  19. </v-banner>
  20. </template>
  1. <script>
  2. export default {
  3. methods: {
  4. alert () {
  5. alert('Hello, World!')
  6. },
  7. },
  8. }
  9. </script>

Banners(横幅) - 图6

动作插槽

actions 插槽在其范围内具有 dismiss 功能,你可以使用它来轻松地隐藏横幅。

template script


  1. <template>
  2. <div>
  3. <v-checkbox v-model="v0" label="Visible"></v-checkbox>
  4. <v-banner v-model="v0" single-line transition="slide-y-transition">
  5. No Internet connection
  6. <template v-slot:actions="{ dismiss }">
  7. <v-btn text color="primary" @click="dismiss">Dismiss</v-btn>
  8. <v-btn text color="primary">Retry</v-btn>
  9. </template>
  10. </v-banner>
  11. </div>
  12. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. v0: true,
  5. }),
  6. }
  7. </script>

Banners(横幅) - 图7