Vuetifyの v-btn ボタンコンポーネントを使用して、color
プロパティを介してさまざまな色を設定しています。ユーザーがボタンをクリックしたら、disabled
をtrue
に設定して、再度クリックできないようにしますが、ボタンの色が失われ、灰色になります。
色を灰色に変更せずにボタンを無効にする方法はありますか?
disabled
プロップの代わりに、カスタムクラスを pointer-events: none
、たとえば.
.disable-events {
pointer-events: none
}
<v-btn :class="{'disable-events': customCondition}">
次に、必要に応じてそのクラスにスタイルを追加します。
v-btn--disabled
を削除し、vuetifyのcssクラスで遊んでいます。
まだ灰色ですが、色付きのテキストソリューションがあります
ボタンはまだ灰色のままですが、テキストは色付きになります。ボタンが無効になっているが色のついた部分があることを示す視覚効果があります。
私は、個人的に、無効にされたボタンに対するカスタムの不透明度もいくつか持っていました。
[〜#〜] html [〜#〜]
<v-btn id="btnA" :disabled="true" color="success">Success</v-btn>
[〜#〜] css [〜#〜]
button.v-btn[disabled] {
opacity: 0.6;
}
[〜#〜] js [〜#〜]
created(){
// Trick to remove class after initialising form
this.$nextTick(() => {
document.getElementById('btnA').classList.remove('v-btn--disabled')
})
}
同じ表示ソリューション
本当に必要な場合は、同じディスプレイで[color]--text
を削除して[color]
クラスを追加する必要があります(読みやすいようにwhite--text
クラスを追加することもあります)。
[〜#〜] js [〜#〜]
created(){
// Trick to remove class after initialising form
this.$nextTick(() => {
document.getElementById('btnA').classList.remove('v-btn--disabled')
document.getElementById('btnA').classList.remove('success--text')
document.getElementById('btnA').classList.add('success')
})
}