Rumah hujung hadapan web uni-app uniapp js menetapkan saiz elemen

uniapp js menetapkan saiz elemen

May 21, 2023 pm 08:51 PM

Dengan peningkatan populariti aplikasi mudah alih, pembangun bahagian hadapan perlu menetapkan saiz elemen yang berbeza untuk peranti mudah alih yang berbeza. Menggunakan uniapp js untuk menetapkan saiz elemen ialah kaedah yang sangat berkesan. Artikel ini akan memperkenalkan cara menetapkan saiz elemen menggunakan uniapp js.

1. Gunakan komponen dan gaya untuk menetapkan saiz elemen

Dalam uniapp, kita boleh menggunakan komponen dan gaya untuk menetapkan saiz elemen. Sebagai contoh, kita boleh menggunakan komponen paparan untuk mencipta bekas, dan kemudian menggunakan sifat lebar dan ketinggian untuk menetapkan saiz bekas, seperti yang ditunjukkan di bawah:

<template>
  <view class="container" style="width: 200px; height: 200px;"></view>
</template>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan komponen paparan untuk mencipta bekas dan lulus Atribut gaya menetapkan lebar dan tinggi bekas kepada 200px masing-masing.

2. Gunakan js untuk menetapkan saiz elemen

Selain menggunakan komponen dan gaya untuk menetapkan saiz elemen, kami juga boleh menggunakan js untuk menetapkan saiz elemen secara dinamik. uniapp memberikan kami beberapa kaedah untuk melaksanakan fungsi ini, seperti yang ditunjukkan di bawah:

  1. uni.createSelectorQuery().select()

Kaedah ini digunakan untuk mendapatkan yang ditentukan elemen Maklumat, termasuk maklumat saiz seperti lebar dan ketinggian elemen. Kita boleh menggunakan maklumat ini untuk mengira dan menetapkan saiz elemen secara dinamik.

Berikut ialah contoh Dalam contoh ini, kami menggunakan kaedah uni.createSelectorQuery().select() untuk mendapatkan maklumat lebar dan ketinggian elemen h1, dan tetapkan lebar dan tinggi h2. unsur supaya h2 Dimensi unsur adalah sama dengan unsur h1.

<template>
  <view class="container">
    <h1 id="title">Hello World</h1>
    <h2 id="subtitle">Subtitle</h2>
  </view>
</template>

<script>
  export default {
    onReady() {
      uni.createSelectorQuery().select('#title').boundingClientRect(rect => {
        uni.createSelectorQuery().select('#subtitle').boundingClientRect(subRect => {
          uni.createSelectorQuery().select('#subtitle').fields({ size: true }, size => {
            this.$nextTick(() => {
              uni.createSelectorQuery().select('#subtitle').boundingClientRect(newRect => {
                const scale = rect.width / newRect.width
                uni.createSelectorQuery().select('#subtitle').boundingClientRect(scaleRect => {
                  uni.createSelectorQuery().select('#subtitle').fields({ size: true }, subSize => {
                    const newHeight = subSize.height * scale
                    uni.createSelectorQuery().select('#subtitle').boundingClientRect(() => {
                      uni.$set(this, 'subtitleStyle',
                        `transform:translate(-50%,-50%)scale(${scale}); width:${subRect.width}px; height:${newHeight}px;`
                      )
                    }).exec()
                  }).exec()
                }).exec()
              }).exec()
            })
          }).exec()
        }).exec()
      }).exec()
    }
  }
</script>
Salin selepas log masuk

Dalam contoh ini, kita mula-mula mendapatkan maklumat lebar dan ketinggian elemen h1, kemudian dapatkan maklumat lebar dan ketinggian elemen h2, dan hitung nisbah penskalaan dan ketinggian baharu elemen h2. Akhir sekali, kami mengemas kini sifat subtitleStyle komponen menggunakan kaedah uni.$set untuk menggunakan skala, lebar dan tinggi pada elemen h2.

  1. uni.$nextTick()

Kaedah ini digunakan untuk melaksanakan operasi DOM sebelum kitaran kemas kini seterusnya. Oleh kerana pengikatan data uniapp adalah tidak segerak, jika kita perlu menunggu kitaran kemas kini seterusnya untuk mendapatkan maklumat elemen, kita perlu menggunakan kaedah ini.

Dalam contoh sebelumnya, kami menggunakan kaedah uni.$nextTick() untuk menunggu elemen dikemas kini. Berikut ialah satu lagi contoh. Kami menggunakan arahan v-if untuk mengawal paparan dan menyembunyikan elemen, dan pada masa yang sama menggunakan kaedah uni.$nextTick() untuk menunggu elemen dikemas kini.

<template>
  <view>
    <button @click="toggle">Toggle</button>
    <view v-show="show" ref="box" style="width: 200px; height: 200px; background-color: #ccc;"></view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        show: true
      }
    },
    methods: {
      toggle() {
        this.show = !this.show
        uni.$nextTick(() => {
          const { width, height } = this.$refs.box.$el.getBoundingClientRect()
          console.log(width, height)
        })
      }
    }
  }
</script>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan arahan v-show vue untuk mengawal paparan dan menyembunyikan elemen, dan menggunakan kaedah uni.$nextTick() untuk menunggu elemen dikemas kini. Apabila kami mengklik butang Togol, kawal nilai atribut show, dan kemudian gunakan kaedah uni.$nextTick() untuk mendapatkan maklumat lebar dan ketinggian elemen.

Ringkasnya, dalam uniapp, kita boleh menggunakan komponen, gaya dan kaedah js untuk menetapkan saiz elemen. Ketiga-tiga kaedah ini mempunyai kelebihan dan kekurangan yang tersendiri, dan kita boleh memilih kaedah yang sesuai mengikut keperluan dan situasi sebenar.

Atas ialah kandungan terperinci uniapp js menetapkan saiz elemen. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Mar 18, 2025 pm 12:20 PM

Artikel membincangkan menggunakan SASS dan kurang preprocessors dalam UNI-APP, memperincikan persediaan, faedah, dan penggunaan dwi. Fokus utama adalah pada konfigurasi dan kelebihan. [159 aksara]

Bagaimana saya menggunakan API Animasi Uni-App? Bagaimana saya menggunakan API Animasi Uni-App? Mar 18, 2025 pm 12:21 PM

Artikel ini menerangkan cara menggunakan API Animasi Uni-App, memperincikan langkah-langkah untuk membuat dan menggunakan animasi, fungsi utama, dan kaedah untuk menggabungkan dan mengawal masa animasi.

Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Mar 27, 2025 pm 04:59 PM

Artikel ini membincangkan pelbagai jenis ujian untuk aplikasi UNIAPP, termasuk unit, integrasi, fungsional, UI/UX, prestasi, silang platform, dan ujian keselamatan. Ia juga meliputi memastikan keserasian silang platform dan mengesyorkan alat seperti JES

Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Mar 27, 2025 pm 04:45 PM

Artikel ini membincangkan strategi untuk mengurangkan saiz pakej UNIAPP, memberi tumpuan kepada pengoptimuman kod, pengurusan sumber, dan teknik seperti pemisahan kod dan pemuatan malas.

Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Mar 27, 2025 pm 05:05 PM

Artikel ini membincangkan alat penyahpepijatan dan amalan terbaik untuk pembangunan UNIPP, yang memberi tumpuan kepada alat seperti HBuildex, WeChat Developer Tools, dan Chrome Devtools.

Bagaimana saya menggunakan API Penyimpanan Uni-App (uni.setstorage, uni.getstorage)? Bagaimana saya menggunakan API Penyimpanan Uni-App (uni.setstorage, uni.getstorage)? Mar 18, 2025 pm 12:22 PM

Artikel ini menerangkan cara menggunakan API penyimpanan Uni-App (uni.setstorage, uni.getstorage) untuk pengurusan data tempatan, membincangkan amalan terbaik, penyelesaian masalah, dan menyoroti batasan dan pertimbangan untuk kegunaan yang berkesan.

Bagaimanakah saya menggunakan API Uni-App untuk mengakses ciri peranti (kamera, geolokasi, dll)? Bagaimanakah saya menggunakan API Uni-App untuk mengakses ciri peranti (kamera, geolokasi, dll)? Mar 18, 2025 pm 12:06 PM

Artikel ini membincangkan menggunakan API UNI-APP untuk mengakses ciri peranti seperti kamera dan geolokasi, termasuk tetapan kebenaran dan pengendalian ralat.

Bagaimana saya mengesahkan input pengguna di uni-app? Bagaimana saya mengesahkan input pengguna di uni-app? Mar 18, 2025 pm 12:17 PM

Artikel ini membincangkan mengesahkan input pengguna dalam UNI-APP menggunakan JavaScript dan mengikat data, menekankan kedua-dua klien dan pengesahan sisi pelayan untuk integriti data. Plugin seperti Uni-Validate disyorkan untuk pengesahan borang.

See all articles