警示
以僅有的幾個彈性又容易取得的警示訊息,為典型的使用者動作提供合適的回饋訊息。
簡介
警示訊息的長度可以是任何長度,也可以選擇性地增加一個關閉按鈕(也可選擇自動關閉)。
<template>
<div>
<b-alert show>Default Alert</b-alert>
<b-alert variant="success" show>Success Alert</b-alert>
<b-alert v-model="showDismissibleAlert" variant="danger" dismissible>
Dismissible Alert!
</b-alert>
<b-alert
:show="dismissCountDown"
dismissible
variant="warning"
@dismissed="dismissCountDown=0"
@dismiss-count-down="countDownChanged"
>
<p>This alert will dismiss after {{ dismissCountDown }} seconds...</p>
<b-progress
variant="warning"
:max="dismissSecs"
:value="dismissCountDown"
height="4px"
></b-progress>
</b-alert>
<b-button @click="showAlert" variant="info" class="m-1">
Show alert with count-down timer
</b-button>
<b-button @click="showDismissibleAlert=true" variant="info" class="m-1">
Show dismissible alert ({{ showDismissibleAlert ? 'visible' : 'hidden' }})
</b-button>
</div>
</template>
<script>
export default {
data() {
return {
dismissSecs: 10,
dismissCountDown: 0,
showDismissibleAlert: false
}
},
methods: {
countDownChanged(dismissCountDown) {
this.dismissCountDown = dismissCountDown
},
showAlert() {
this.dismissCountDown = this.dismissSecs
}
}
}
</script>
可見狀態
使用 show
prop 來控制警示訊息的可見狀態。預設警示訊息不會顯示。設定 show
prop 來明確顯示它們。
show
prop 接受布林值 true
或 false
分別顯示或隱藏警示訊息。它也可以設定成正整數(表示秒數)來建立一個自動消失的警示訊息。詳情請參閱下列的 自動消失警示訊息 區段。
v-model
支援
你可以使用 v-model
指令在 show
prop 上建立雙向資料繫結,如同上方的 v-model="showDismissibleAlert"
。當你使用可關閉功能時這很有用,因為當使用者關閉警示訊息時,你的變數會被更新。當使用 v-model
時,請勿使用 show
prop。
內容變形
為了適當地使用 <b-alert>
,請使用四個必要的內容變形之一,方法是將 variant
prop 設定為下列其中之一:info
、success
、warning
或 danger
。預設為 info
。
<div>
<b-alert show variant="primary">Primary Alert</b-alert>
<b-alert show variant="secondary">Secondary Alert</b-alert>
<b-alert show variant="success">Success Alert</b-alert>
<b-alert show variant="danger">Danger Alert</b-alert>
<b-alert show variant="warning">Warning Alert</b-alert>
<b-alert show variant="info">Info Alert</b-alert>
<b-alert show variant="light">Light Alert</b-alert>
<b-alert show variant="dark">Dark Alert</b-alert>
</div>
傳達輔助技術的意義
僅使用 color 變體來新增意義,將只提供視覺上的指示,輔助科技使用者(例如螢幕閱讀程式)將無法得知。請務必確保以顏色標示的資訊,其內容本身就是顯而易見的(例如可見文字),或透過其他方式包含,例如以.sr-only
類別隱藏的附加文字。
快訊中的附加內容
<b-alerts>
也能包含標題和段落等其他 HTML 元素,這些元素的樣式會符合 variant 的顏色。
<div>
<b-alert show variant="success">
<h4 class="alert-heading">Well done!</h4>
<p>
Aww yeah, you successfully read this important alert message. This example text is going to
run a bit longer so that you can see how spacing within an alert works with this kind of
content.
</p>
<hr>
<p class="mb-0">
Whenever you need to, be sure to use margin utilities to keep things nice and tidy.
</p>
</b-alert>
</div>
快訊中連結的顏色
使用.alert-link
實用程式 CSS 類別,即可在任何快訊中快速提供顏色相符的連結。用於<a>
或<b-link>
。
<div>
<b-alert show variant="primary"><a href="#" class="alert-link">Primary Alert</a></b-alert>
<b-alert show variant="secondary"><a href="#" class="alert-link">Secondary Alert</a></b-alert>
<b-alert show variant="success"><a href="#" class="alert-link">Success Alert</a></b-alert>
<b-alert show variant="danger"><a href="#" class="alert-link">Danger Alert</a></b-alert>
<b-alert show variant="warning"><a href="#" class="alert-link">Warning Alert</a></b-alert>
<b-alert show variant="info"><a href="#" class="alert-link">Info Alert</a></b-alert>
<b-alert show variant="light"><a href="#" class="alert-link">Light Alert</a></b-alert>
<b-alert show variant="dark"><a href="#" class="alert-link">Dark Alert</a></b-alert>
</div>
可關閉的快訊
使用dismissible
prop,可以在同一頁面上關閉任何<b-alert>
。這樣做會新增一個關閉的X
按鈕。使用dismiss-label
prop,來變更與關閉按鈕關聯的隱藏標籤文字。
<div>
<b-alert show dismissible>
Dismissible Alert! Click the close button over there <b>⇒</b>
</b-alert>
</div>
自動關閉的快訊
如要建立會在一段時間後自動關閉的<b-alert>
,請將show
prop (或v-model
)設定為想讓<b-alert>
保持可見的秒數。只支援整數秒數。
<template>
<div>
<b-alert
:show="dismissCountDown"
dismissible
variant="warning"
@dismissed="dismissCountDown=0"
@dismiss-count-down="countDownChanged"
>
This alert will dismiss after {{ dismissCountDown }} seconds...
</b-alert>
<b-button @click="showAlert" variant="info" class="m-1">
Show alert with count-down timer
</b-button>
</div>
</template>
<script>
export default {
data() {
return {
dismissSecs: 5,
dismissCountDown: 0
}
},
methods: {
countDownChanged(dismissCountDown) {
this.dismissCountDown = dismissCountDown
},
showAlert() {
this.dismissCountDown = this.dismissSecs
}
}
}
</script>
淡出快訊
使用fade
prop,來啟用動畫。預設情況下,快訊沒有動畫。
<template>
<div>
<b-alert show dismissible fade>Dismissible Alert!</b-alert>
<b-alert
variant="danger"
dismissible
fade
:show="showDismissibleAlert"
@dismissed="showDismissibleAlert=false"
>
Dismissible Alert!
</b-alert>
<b-alert
:show="dismissCountDown"
dismissible
fade
variant="warning"
@dismiss-count-down="countDownChanged"
>
This alert will dismiss after {{ dismissCountDown }} seconds...
</b-alert>
<b-button @click="showAlert" variant="info" class="m-1">
Show alert with count-down timer
</b-button>
<b-button @click="showDismissibleAlert=true" variant="info" class="m-1">
Show dismissible alert ({{ showDismissibleAlert ? 'visible' : 'hidden' }})
</b-button>
</div>
</template>
<script>
export default {
data() {
return {
dismissSecs: 5,
dismissCountDown: 0,
showDismissibleAlert: false
}
},
methods: {
countDownChanged(dismissCountDown) {
this.dismissCountDown = dismissCountDown
},
showAlert() {
this.dismissCountDown = this.dismissSecs
}
}
}
</script>