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にデプロイされたアプリケーションがフロントエンドページにアクセスできない問題について

最近、実践的なトレーニング プロジェクトを実行する際に ssm フレームワークを使用しました。プロジ...

Linux コマンドラインでパケットをキャプチャするために tcpdump を使用するいくつかの機能

tcpdump は、ネットワークの問題のトラブルシューティングに効果的に役立つ、柔軟で強力なパケット...

ubuntu16.04でNFSサービスを構築する方法

NFS の紹介NFS (ネットワーク ファイル システム) は、FreeBSD でサポートされている...

MySQL バージョンは、2 つのタイムスタンプ型の値をサポートしていないバージョンよりも低いです。

MySQL エラー:エラー コード: 1293 テーブル定義が正しくありません。CURRENT_T...

インタラクションデザインと心理学の驚くべきつながり18選

デザイナーは心理学を理解する必要があるデザイナーが知るべき心理学という本は非常に興味深いです。まず、...

CentOS 8 Zabbix 4.4 インストール ガイド

Zabbix サーバー環境プラットフォームZABBIX バージョン 4.4セントOS8 MySQL ...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

1つの記事でJavaScriptのクロージャ関数について学ぶ

目次変数のスコープ閉鎖の概念クロージャの使用クロージャのデメリット最後に、クロージャのメリットとデメ...

Vueドロップダウンリストの2つの実装方法の比較

Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...

Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する

1. 問題Linux 上の mysql5.7 のパスワードを忘れました2. 解決策• ステップ 1:...

Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

VueとネイティブJavaScriptカプセル化に基づいて、プルダウンリフレッシュとプルアップロード...

jQueryをベースにカルーセル効果を実現する

この記事では、カルーセルマップの効果を実現するためのjQueryの具体的なコードを参考までに共有しま...

Tomcatの自動シャットダウンに関するバグ修正

序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...

ウェブサイト標準の検証方法を通じてFlashページを共有する方法

1. 埋め込みは違法です<embed> タグは Netscape のプライベート タグで...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...