Vueバインディングクラスとバインディングインラインスタイルの実装方法

Vueバインディングクラスとバインディングインラインスタイルの実装方法

バインディングクラス

方法1:

オブジェクト構文: オブジェクトを v-bind:class に渡してクラスを動的に切り替える
オブジェクト内のキーに対応する値がtrueの場合、キーはclassNameとしてラベルに追加されます。

。箱 {
    幅: 100ピクセル;
    高さ: 100px;
    背景色: グレー;
}
。丸 {
    境界線の半径: 50%;
}
<div id="アプリ">
    <div class="box" @click="isCircle = !isCircle" :class="{circle:isCircle}"></div>
    <!--isCircle が true の場合、div のクラス名に円が追加されます -->
    <p>{{isCircle}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<スクリプト>
    新しいVue({
        el:"#アプリ",
        データ:{
            isCircle: false
        }
    })
</スクリプト>

最初、ボックスは正方形です。クリックすると、円に切り替わります。もう一度クリックすると、正方形に切り替わります。

:class="{circle:isCircle}" は計算プロパティcomputedに書き込むこともでき、このオブジェクトを返します。

<div class="box" @click="isCircle = !isCircle" :class="divChange"></div>
計算:{
        divChange:関数(){
            {circle:this.isCircle} を返します
        }
    }

方法2:
配列構文: v-bind:classに配列を渡してクラスのリストを適用します
CSS は青い背景効果を追加します:

。青 {
    背景色: 青;
}
<div id="アプリ">
    <div class="box" v-on:click="clickFun()" :class="[color,divChange()]"></div>
    <p>{{isCircle}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<スクリプト>
    新しいVue({
        el:"#アプリ",
        データ:{
            isCircle: false、
            色:""
        },
        方法:{
            divChange: 関数(){
                {circle:this.isCircle} を返します
            },
            クリックファンクション: 関数(){
                this.isCircle = !this.isCircle;
                if (this.isCircle){
                    this.color = "青"
                }それ以外{
                    this.color = ""
                }
            }
        }
    })
</スクリプト>

インラインスタイルのバインディング

インライン スタイルのバインディングでは、オブジェクト構文または配列構文を使用することもできます。以下は、オブジェクト構文と計算プロパティを組み合わせたメソッドの例です。

<div id="アプリ">
 <!--インライン スタイルをバインド-->
    <div class="box" v-on:click="clickFun()" :style="divStyle"></div>
    <p>{{isCircle}}</p>
</div>

divスタイル:

divスタイル: 関数(){
    戻る {
        背景色:this.color
    }
}

この方法で希望の色を.boxに設定できます

小さなデモ:

1. ボックスをクリックすると、円と四角形が切り替わります - インラインスタイルのバインディング
2. 初期のボックスの色は赤です。スタートボタンをクリックすると、1秒ごとに色(赤/青)が切り替わります。ボタンをもう一度クリックすると、色の切り替えがキャンセルされます - クラスバインディング

。箱 {
    幅: 100ピクセル;
    高さ: 100px;
    背景色: 赤;
}

。青 {
    背景色: 青;
}
<div id="アプリ">
    <div class="box" :style="borderRadius" @click="changeStyle" :class="{blue: isBlue}"></div>
    <button @click="startClick">開始</button>
</div>
新しいVue({
    el: "#app",
    データ: {
        isCircle: false、
        境界半径: { 境界半径: "50%" },
        isStart: false、
        isBlue: false、
        タイマー: null
    },

    メソッド: {
        スタイルの変更: 関数 () {
            (this.borderRadius.borderRadius == "0%") の場合 {
                this.borderRadius.borderRadius = "50%"
            } それ以外 {
                this.borderRadius.borderRadius = "0%"
            }
        },
        スタートクリック: 関数 () {
            this.isStart = !this.isStart;
        }
    },

    時計:
        isStart: 関数 (val) {
            var vm = this;
            if (値) {
                console.log("色の切り替えを有効にする")
                this.timer = setInterval(関数() {
                    vm.isBlue = !vm.isBlue
                }, 1000)
            }それ以外{
                console.log("タイマーをキャンセルし、色の切り替えを停止します")
                タイマー間隔をクリアします。
                this.timer = null;
            }

        }
    }
})

効果:

Vue バインディング クラスとバインディング インライン スタイルの実装方法についてはこれで終わりです。Vue バインディング クラスとバインディング インライン スタイルの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue.js スタイルの動的バインディング実装の概要
  • Vue スタイルバインディングの実装方法
  • Vue フレームワークの動的バインディング CSS スタイルの例の分析
  • Vue バインディングのインライン スタイルの問題
  • Vueのスタイルバインディングの詳細な説明

<<:  CSS で点線の境界線のスクロール効果を実装するサンプルコード

>>:  Dockerがコンテナサービスを停止または削除できない問題の解決策

推薦する

Mysqlはフィールドスプライシングのための3つの関数を実装している

データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...

MySQLの共通関数の概要

序文: MySQL データベースは、よく使用される集計関数、日付および文字列処理関数など、幅広い関数...

MySQL 5.7 のユニオンオール使用法のブラックテクノロジーを 5 分で学ぶ

MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...

CSS で画像アダプティブ コンテナを実装するためのサンプル コード

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

MySQLはinet_atonとinet_ntoaを使用してIPアドレスデータを処理します。

この記事では、適切な形式を使用して IP アドレス データをデータベースに保存し、IP アドレスを簡...

Linux で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?

【問題分析】 chown コマンドを使用できます。ここで ch は change (変更) を表し...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

よくある MySQL 設計エラーをご存知ですか?

インターネットの発達により、バスを待ったり地下鉄に乗ったりする時間など、断片的な時間を活用して、いつ...

カルーセルバナーの自動回転効果を実現する純粋な CSS

さっそくコードを見てみましょう * { マージン: 0; パディング: 0; } 。容器 { マージ...

Docker デプロイメント MySQL8 クラスター (マスター 1 台とスレーブ 2 台) の実装手順

目次1. CentOS 7.9 20にDockerをインストールする2. MySQL クラスターをデ...

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...

MySQLデータの挿入、更新、削除の詳細

目次1. 挿入2. 更新3. 削除1. 挿入 顧客に挿入( 顧客.顧客住所、 顧客.cust_cit...

カルーセルの制作方法を実現するjs

この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...

Ubuntu 上の Apache で SSL (https 証明書) を設定する正しい方法の詳細な説明

まず、Alibaba Cloud の公式チュートリアルをご覧ください。ファイルの説明: 1. 証明書...

HTMLノードの追加と削除の簡単な例

HTML ノードの追加と削除の簡単な例 HTML ノードの追加と削除の簡単な例<input t...