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による自動デプロイの実現方法

推薦する

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

ウェブページでメモの詳細が灰色になる問題に対処する

1. IE では、相対的な配置、つまり <div style="background...

js 配列 fill() 充填メソッド

目次1. fill() 構文2. fill() の使用3. まとめ序文:配列の初期化方法についてはよ...

MySQL MGR 構築時の一般的な問題と解決策

目次01 よくある故障 1 02 よくある欠陥 2 03 よくある欠陥 3 04 よくある欠陥 4 ...

間違った MySQL コマンドをキャンセルしたい場合はどうすればいいですか?

間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...

MySQL InnoDB の重要なコンポーネントの概要

Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...

XHTML CSS ウェブサイトデザインの利点と問題点

XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...

URL 内の特殊記号の意味を知っていますか?

1.# # は Web ページ内の場所を表します。右側の文字はその位置の識別子です。たとえば、ht...

JavaScript操作要素は、ページコンテンツのスタイルを変更する方法を教えます

目次1. 操作要素1.1. 要素コンテンツの変更1.2. innerText と innerHtml...

Linuxはバイナリモードを使用してmysqlをインストールします

この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...

MySQL準備原理の詳細な説明

準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...

Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します

目次序文: 1. Dockerをインストールする2. DockerでJenkinsをインストールする...

よくある CSS のヒントと経験談 11 選

1. 画像の下にある数ピクセルの空白を削除するにはどうすればよいですか?コードをコピーコードは次のと...

JavaScriptは双方向リンクリストプロセス分析を実装します

目次1. 二重連結リストとは何か2. 双方向リンクリストのカプセル化3. 双方向リンクリストの一般的...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...