Bagaimanakah cara saya memastikan bahawa medan input cukup luas untuk memaparkan kandungan sepenuhnya?
P粉014218124
2023-09-02 22:36:56
<p>Saya menggunakan komponen Vuetify TextField dalam jadual dengan banyak lajur. Mungkin komponen itu mengandungi terlalu banyak kandungan untuk dipaparkan dan dari perspektif pengalaman pengguna memeriksa kandungan dengan menatal dalam medan akan mengambil terlalu banyak masa jika terdapat banyak sel. </p>
<p>Contoh HTML tulen</p>
<p>Contoh Vuetify</p>
<p>Idea pertama saya (jika anda mempunyai idea yang lebih baik, sila beritahu saya) ialah untuk menunjukkan petua alat untuk menunjukkan kandungan penuh, tetapi ini akan menjengkelkan jika komponen itu mampu menunjukkan kandungan penuh. Jadi saya hanya mahu menunjukkan petua alat apabila kandungan disembunyikan/dipotong. </p>
<p>Jadi adakah terdapat cara untuk mengetahui sama ada komponen itu menunjukkan kandungan lengkap atau jika terdapat kandungan yang tersembunyi/dipotong? (Prestasi jadual adalah penting, jadi saya tidak tahu sama ada ia berbaloi untuk melakukan pengiraan yang sangat kompleks apabila nilai berubah) </p>
<p>Saya cuba</p>
<p>(Taman Permainan)</p>
<pre class="brush:php;toolbar:false;"><setup script>
import { ref, watch } daripada 'vue'
medan const = ref()
const msg = ref(
'Hello World! terlalu banyak kandungan dalam komponen medan teks ini untuk dipaparkan.'
)
const isCuttingOff = ref(false)
menonton (
mesej,
() =>
const inputWidth = field.value?.clientWidth
const inputValueWidth = msg.value.length // !!! ukur nilai input di sini !!!
console.log({ inputWidth, inputValueWidth })
isCuttingOff.value = inputWidth <
},
{ segera: benar }
)
</skrip>
<template>
<v-app>
<div class="text-h3">Sedang terputus: {{ isCuttingOff }}</div>
<v-kelas bekas="w-25">
<v-text-field ref="field"label="fsfdsf"v-model="msg"
</v-bekas>
</v-app>
</template></pre>
<p>Tetapi</p>
<ul>
<li>Pada permulaan, pembolehubah <kod>inputWidth</code>
<li>Saya tidak tahu cara mengira pembolehubah <kod>inputValueWidth</code></li>
</ul></p>
Gunakan CSS untuk menunjukkan limpahan teks, seperti .... (elipsis) dan gunakan atribut title untuk menunjukkan kandungan penuh pada tuding, seperti pop timbul
Dengan mengubah suai kod anda, saya berjaya membandingkan
clientWidth
和scrollWidth
kotak teks.1- Dihapuskan
field
sebut harga.2- Menambah id pada
v-text-field
.3- Menambah fungsi panggil balik
check
函数,并在watch
untuk memanggilnya.4- Di dalam fungsi
check
, saya telah menyemakcheck
函数内部,我检查了输入框的clientWidth
和scrollWidth
kotak input.5- Untuk menjalankannya pada beban awal, saya menetapkan
msg
pada rentetan kosong dan menukarnya kepada rentetan mentah di bahagian bawah skrip.Lihat di sini: Di sini