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 テーブル 'performance_schema...解決方法

テスト環境は、JDBCドライバを使用してMariaDB 5.7でセットアップされています。 <...

CSSスタイルの記述順序と命名規則と注意事項

書き順の重要性ブラウザのリフローを減らし、ブラウザのDOMレンダリングパフォーマンスを向上させる①:...

Linux で Scala 環境を構築し、簡単な Scala プログラムを書く

Linux に Scala 環境をインストールするのは非常に簡単です。Ubuntu 環境であれば、さ...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

Ubuntu 16.04/18.04 に Pycharm と Ipython をインストールするチュートリアル

Ubuntu 18.04の場合1. sudo apt install python 。コマンドライン...

MySQL の replace と replace into の詳細な例 into_Mysql

MySQL の replace と replace into はどちらも頻繁に使用される関数です。...

HTML H タイトルタグの使用

H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...

Vue3 setup() の高度な使用例の詳細な説明

目次1. オプションAPIと組み合わせAPIの違い2. セットアップを具体的にどのように使用するので...

Dockerを使用してGitlabを素早くデプロイする方法

1. GitLabイメージをダウンロードする docker pull gitlab/gitlab-c...

css n番目から始まるすべての要素を取得する

具体的なコードは次のとおりです。 <div id="ボックス"> &...

JavaScript の基礎: スコープ

目次範囲グローバルスコープ関数のスコープもし、スイッチ、のために、その間ブロックスコープスコープチェ...

IE8 ベータ 1 には注意が必要な 2 つの領域があります

<br />関連記事: Web スキル: 複数の IE バージョンを共存させるソリューシ...

MySQLはOracleシーケンスに似たソリューションを実装しています

MySQLはOracleのようなシーケンスを実装しているOracle は通常、主キー フィールドを処...

JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法

目次1. 自己列挙可能なプロパティ2. Object.values()はプロパティ値を返します3. ...

JavaScript キャンバスで動的な点と線の効果を実現

この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...