入力フィールドがコンテンツを完全に表示するのに十分な幅であることを確認するにはどうすればよいですか?
P粉014218124
P粉014218124 2023-09-02 22:36:56
0
2
460

多くの列があるテーブルで Vuetify TextField コンポーネントを使用しています。コンポーネントに含まれるコンテンツが多すぎて表示できない可能性があり、ユーザー エクスペリエンスの観点から、セルが多い場合、フィールド内をスクロールしてコンテンツを検査すると時間がかかりすぎます。

純粋な HTML の例

Vuetify の例

私の最初の考えは (もっと良いアイデアがある場合はお知らせください)、完全なコンテンツを表示するツールチップを表示することですが、コンポーネントが完全なコンテンツを表示できる場合、これは煩わしいでしょう。したがって、コンテンツが非表示または切り捨てられている場合にのみツールチップを表示したいと考えています。

では、コンポーネントが完全なコンテンツを表示しているか、それとも非表示または切り詰められたコンテンツがあるかを知る方法はあるのでしょうか? (テーブルのパフォーマンスは重要なので、値が変化したときに非常に複雑な計算を行う価値があるかどうかはわかりません)

やってみました

(遊び場)

<スクリプトのセットアップ> 'vue' から { ref, watch } をインポートします const フィールド = ref() const msg = ref( 「Hello World! このテキスト フィールド コンポーネントには表示できないコンテンツが多すぎます。」 ) const isCuttingOff = ref(false) 時計( メッセージ、 () => { const inputWidth = field.value?.clientWidth const inputValueWidth = msg.value.length // !!! ここで入力値を測定します !!! console.log({ inputWidth, inputValueWidth }) isCuttingOff.value = inputWidth < inputValueWidth }、 {即時: true } ) 
      <テンプレート>
        
切断中です: {{ isCuttingOff }}

でも

  • 起動時、変数 inputWidth は未定義です
  • 変数 inputValueWidth
  • の計算方法がわかりません。
<

P粉014218124
P粉014218124

全員に返信 (2)
P粉473363527

CSS を使用して、....(省略記号) などのテキストのオーバーフローを表示し、title属性を使用して、カーソルを置くとポップのように完全なコンテンツを表示します。 -アップウィンドウ

リーリー
いいねを押す+0
    P粉342101652

    コードを変更することで、テキストボックスのclientWidthscrollWidthを正常に比較できました。

    1-field参照を削除しました。

    2-v-text-fieldに ID を追加しました。

    3-check関数を追加し、watchコールバック関数で呼び出しました。

    4-check関数内で、入力ボックスのclientWidthscrollWidthをチェックしました。

    5- 初期ロード時に実行するために、msgを空の文字列に割り当て、スクリプトの下部にある元の文字列に変更しました。

    ここで見る:ここ

    リーリー
    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!