Vue は小数点付きの星評価を実装します

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

まずvue.jsファイルをインポートする必要があります

CSS部分

<スタイル>
 主要{
  位置:相対;
  }
 .star_line{
  /* 改行を強制しないように設定します */
  幅スペース:nowrap;
  オーバーフロー: 非表示;
  位置: 絶対;
  }
 。星{
  表示: インラインブロック;
  /* マウスを星の上に置いたときに小さな手の形に変わるように設定します*/
  カーソル: ポインタ
  }
</スタイル>

<div id="アプリ">
 <input type="text" v-model.number="スコア">
 <- 双方向バインディングでバインドされた値を受け取るコンポーネントは、値を使用して受け取る必要があります。原則は次のとおりです。input ->
 <v-star v-model="スコア"></v-star>
</div>

js 部分では、コンポーネントを使用し、入力はルート コンポーネントにあり、作成した星はコンポーネント内に配置されます。星の評価は主に、親コンポーネントと子コンポーネントが互いに値を受け渡す双方向バインディングによって実現されます。

コンポーネントテンプレート部分

<script id="v-star" type="text/html">
    <main :style="mainStyle">
        <!-- ホワイト スター -->
        <div class="star_line">
            <span @click="changeValue(star)" class="star" :style="starStyle" v-for="star in total">☆</span>
        </div>
        <!-- ブラックスター -->
        <div class="star_line" :style="blackStyle">
            <span @click="changeValue(star-1)" class="star" :style="starStyle" v-for="合計星数">★</span>
        </div>
    </メイン>
</スクリプト>

js部分

<スクリプト>
    Vue.component("v-star",{
        テンプレート:"#v-star",
        小道具:{
            合計:{
                デフォルト:10、
            },
            サイズ:{
                デフォルト:30
            },
            // 親コンポーネントから渡されたスコアを受け取る
            価値:{}
        },
        // 計算プロパティ computed:{
            メインスタイル(){
                戻る {
                    幅: this.size * this.total + "px",
                }
            },
            スタースタイル(){
                戻る {
                    幅:this.size + "px",
                    高さ:this.size + "px",
                    フォントサイズ: this.size + 6 + "px"
                }
            },
            ブラックスタイル(){
                戻る {
                    幅:この値 / この合計 * 100 + "%"
                }
            }
        },
        方法:{
            値の変更(値){
                // 最新の結果を入力に渡す
                // 入力タグにはデフォルトの入力イベントがあります this.$emit("input",value)
            }
        }
    })

    新しいVue({
        el:"#アプリ",
        データ:{
            スコア:1
        }
    })
</スクリプト>

レンダリング

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue2.0はフロントエンドの星評価機能コンポーネントのサンプルコードを実装します。

<<:  Ubuntu 20.04にvncserverをインストールする方法

>>:  CentOS 7 パスワードを忘れた場合の解決プロセス図

推薦する

Linux Centos8 CA証明書作成チュートリアル

必要なファイルをインストールする Yum インストール openssl-* -yデータベースインデッ...

Linuxのpasswdコマンドの使用

1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...

vue-router 履歴モード サーバー側設定プロセス記録

歴史ルート履歴モードとは、HTML5 の履歴 API を使用してクライアント側ルーティングを実装する...

Linux プロセスの CPU 使用率が 700% に達し、終了できない場合の解決策

目次1. 問題の発見2. プロセスの詳細情報を表示する3. 解決策4. 大法を再開する1. 問題の発...

JavaScript offsetParent のケーススタディ

1. offsetParentの定義: offsetParentは子要素に最も近い位置に配置された親...

7つの基本的なXHTMLコーディングルールの概要

1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...

MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明

この記事では、MySQL のデータ型とフィールド属性について説明します。ご参考までに、詳細は以下の通...

JavaScriptの原理と方向性

これが何を指しているのかをどのように判断するのでしょうか? ①グローバル環境で呼び出された場合はwi...

Ubuntu 16.04 で MySQL マスター スレーブ同期を設定する方法

準備1. マスターとスレーブのデータベースのバージョンは一致している必要があります2. マスターデー...

CSSはcalc()を使用して現在の表示画面の高さを取得します

まず、CSS3 の相対的な長さの単位を見てみましょう (詳細なチュートリアルを参照してください)。相...

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルト...

ES6 配列のコピーおよびフィルメソッド copyWithin() および fill() の具体的な使用法

目次バッチコピー copyWithin()配列を埋めるメソッド fill()指数の計算方法については...

MySQL ステートメントコメントの紹介

MySQL は次の 3 種類のコメントをサポートしています。 1. 行末の「#」文字から。 2. 「...

Vue での Vue.prototype の使用に関する詳細な説明

目次1. 基本的な例2. インスタンスプロトタイプのスコープを設定する3. グローバル変数の登録と使...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...