JavaScriptは入力ボックスコンポーネントを実装します

JavaScriptは入力ボックスコンポーネントを実装します

この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

背景

taro h5 では、次のスタイルの入力ボックスを実装します。

質問:

taroコンポーネントとtaro-uiコンポーネントにはこのスタイルのコンポーネントはありません。Taro h5はプレースホルダーのスタイルの変更をサポートしていません。より柔軟にスタイルを定義できる入力コンポーネントを自分で実装してみました。

成し遂げる

jsコード

Taro をインポートします。{ コンポーネント } から '@tarojs/taro';
'@tarojs/components' から View をインポートします。
'taro-ui' から AtIcon をインポートします。

'./index.scss' をインポートします。

/**
 * @description 入力ボックスコンポーネントを手動で実装します* @param placeholder: String 入力ボックスのプレースホルダーをカスタマイズします* @param onClickSearch: Function 入力コンテンツを取得するコールバック*/
クラスBaseInputはComponentを拡張します{
  コンポーネントマウント() {
    //入力ボックスのフォーカス document.querySelector('.search').focus();
  }

  ハンドルサーチ = () => {
    //入力ボックスの内容を取得します。const value = document.querySelector('.search').innerText;
    this.props.onClickSearch && this.props.onClickSearch(値);
  };

  与える() {
    const { placeholder = '入力してください' } = this.props;
    戻る (
      <View className="base_input">
        <View className="my_search">
          <アイコン
            値="検索"
            カラー="#999"
            クラス名="検索アイコン"
            onClick={this.handleSearch}
          />
          {/* contenteditable は div が編集可能かどうかを制御できます*/
          <表示
            クラス名="検索"
            コンテンツ編集可能
            プレースホルダー={プレースホルダー}
          </表示>
        </表示>
      </表示>
    );
  }
}
デフォルトの BaseInput をエクスポートします。

SCSSコード

.base_input {
  .my_search {
    ボックスのサイズ: 境界線ボックス;
    幅: 690ピクセル;
    高さ: 56px;
    行の高さ: 56px;
    境界線の半径: 28px;
    マージン: 12px 自動;
    背景: #f8f8f8;
    ディスプレイ: フレックス;
    .検索アイコン {
      幅: 30ピクセル;
      高さ: 30px;
      左マージン: 20px;
      右マージン: 18px;
    }
    。検索 {
      幅: 560ピクセル;
      パディング: 0px 18px;
      背景: #f8f8f8;
      高さ: 56px;
      色: #999;
      フォントサイズ: 28px;
      フォントの太さ: 400;
      &:empty::after {
        コンテンツ: attr(プレースホルダー);
      }
    }
  }
}

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

以下もご興味があるかもしれません:
  • Vue.js ドロップダウン コンポーネント付きテキストボックス
  • Vue.jsデジタル入力ボックスコンポーネントの使い方の詳細な説明
  • JS は Alipay 入力テキスト入力ボックス拡大コンポーネントの例を模倣します
  • JavaScript コンポーネント開発: 入力ボックスと候補ボックス
  • JSは正規表現を使用して、入力ボックスを小数点以下2桁の整数と小数点(金額または現金)のみに制限します。
  • js と jQuery リアルタイム監視入力ボックスの値 oninput と onpropertychange メソッド
  • jsは入力ボックスの値の即時変更を監視します。onpropertychange、oninput
  • JSはWebページ上に入力ボックスをポップアップする方法を実装します
  • jsは入力ボックスのtype属性を動的に変更します(実装方法の分析)
  • jsは入力ボックスの値のリアルタイムの変化を監視します

<<:  MySQL Innodb ストレージ構造と Null 値の保存の詳細な説明

>>:  Docker+Jenkinsによる自動デプロイの実現方法

推薦する

Tomcat 7.0 で仮想ディレクトリを設定し、仮想パスを構成する方法

Tomcat7.0は仮想ディレクトリを設定します(1)現在、当社のウェブサイトはデフォルトのディレク...

jquery-multiselect を使用した IE6 のバグの解決方法

jquery-multiselect (ドロップダウン ボックスをチェックボックス付きの複数選択コン...

Ubuntu 20.04にROS Noeticをインストールする方法

免責事項:プロジェクトでは ROS 環境を使用する必要があるため、これは Ubuntu 20.04 ...

Linux で仮想コンソール セッションをロックする方法

共有システムで作業しているときは、他のユーザーが自分のコンソールを覗き込んで、自分が何をしているか見...

iframe 適応サイズ実装コード

ページドメインの関係:メインページ a.html はドメイン A: www.jb51.net に属し...

MySQL 関数インデックス最適化ソリューション

MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...

1 行または複数行のテキストがオーバーフローしたときに省略記号を表示する CSS を実装する方法

1. 単一行オーバーフロー1. 1 行がオーバーフローした場合、超過部分は表示されます...または、...

mysql5.7.19 winx64 インストールおよび構成方法のグラフィック チュートリアル (win10)

mysql 5.7.19 winx64のインストールチュートリアルは以下のように記録され、みんなと...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

Reactでのイベントバインディングの実装は3つの方法を指しています

1. 矢印関数1. 矢印関数自体はこれをバインドしないという事実を利用します。 2. render(...

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

目次コンテナデータボリュームとはコンテナ データ ボリュームが必要なのはなぜですか?使用データボリュ...

Ubuntu で nvidia グラフィック ドライバーをインストールする (簡単なインストール方法)

Ubuntu で nvidia グラフィック カード ドライバーをインストールします。同じ方法で ...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...