ホームページ ウェブフロントエンド uni-app uniapp jsは要素のサイズを設定します

uniapp jsは要素のサイズを設定します

May 21, 2023 pm 08:51 PM

モバイル アプリケーションの人気が高まるにつれ、フロントエンド開発者はモバイル デバイスごとに異なる要素サイズを設定する必要があります。 uniapp js を使用して要素のサイズを設定することは非常に効果的な方法です。この記事ではuniapp jsを使って要素サイズを設定する方法を紹介します。

1. コンポーネントとスタイルを使用して要素のサイズを設定する

uniapp では、コンポーネントとスタイルを使用して要素のサイズを設定できます。たとえば、以下に示すように、ビュー コンポーネントを使用してコンテナを作成し、幅と高さのプロパティを使用してコンテナのサイズを設定できます。

<template>
  <view class="container" style="width: 200px; height: 200px;"></view>
</template>
ログイン後にコピー

この例では、ビュー コンポーネントを使用します。コンテナを作成して渡します。 style 属性は、コンテナの幅と高さをそれぞれ 200px に設定します。

2. js を使用して要素サイズを設定する

コンポーネントとスタイルを使用して要素サイズを設定することに加えて、js を使用して要素サイズを動的に設定することもできます。 uniapp は、以下に示すように、この関数を実装するためのメソッドをいくつか提供します。

  1. uni.createSelectorQuery().select()

このメソッドは、指定されたデータを取得するために使用されます。要素の幅や高さなどのサイズ情報を含む要素情報。この情報を使用して、要素のサイズを動的に計算および設定できます。

以下は例です。この例では、uni.createSelectorQuery().select() メソッドを使用して h1 要素の幅と高さの情報を取得し、h2 要素の幅と高さを設定します。 h2 要素の寸法が 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>
ログイン後にコピー

この例では、まず h1 要素の幅と高さの情報を取得し、次に h2 要素の幅と高さの情報を取得して、h2 要素の拡大縮小率と新しい高さを計算します。最後に、uni.$set メソッドを使用してコンポーネントのsubtitleStyleプロパティを更新し、スケール、幅、高さをh2要素に適用します。

  1. uni.$nextTick()

このメソッドは、次の更新サイクルの前に DOM 操作を実行するために使用されます。 uniapp のデータ バインディングは非同期であるため、要素情報を取得するために次の更新サイクルを待つ必要がある場合は、このメソッドを使用する必要があります。

前の例では、uni.$nextTick() メソッドを使用して要素が更新されるのを待ちました。別の例として、vue の v-if ディレクティブを使用して要素の表示と非表示を制御し、同時に uni.$nextTick() メソッドを使用して要素が更新されるのを待ちます。

<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>
ログイン後にコピー

この例では、vue の v-show 命令を使用して要素の表示と非表示を制御し、uni.$nextTick() メソッドを使用して要素が更新されるのを待ちます。 [切り替え] ボタンをクリックして show 属性の値を制御し、uni.$nextTick() メソッドを使用して要素の幅と高さの情報を取得します。

つまり、uniapp では、コンポーネント、スタイル、js メソッドを使用して要素のサイズを設定できます。これら 3 つの方法にはそれぞれ長所と短所があり、実際のニーズと状況に応じて適切な方法を選択できます。

以上がuniapp jsは要素のサイズを設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Uni-APPでプレ前セッサー(SASS、LESS)を使用するにはどうすればよいですか? Uni-APPでプレ前セッサー(SASS、LESS)を使用するにはどうすればよいですか? Mar 18, 2025 pm 12:20 PM

記事では、UNI-APPでSASSおよびPREPROCESSORSを使用して、セットアップ、利点、および二重使用法を詳細に使用することについて説明します。主な焦点は構成と利点にあります。[159文字]

Uni-AppのアニメーションAPIを使用するにはどうすればよいですか? Uni-AppのアニメーションAPIを使用するにはどうすればよいですか? Mar 18, 2025 pm 12:21 PM

この記事では、Uni-AppのアニメーションAPIの使用方法、アニメーション、キー関数、およびアニメーションのタイミングを結合および制御する方法を作成および適用する手順を詳細に説明します。

UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか? UNIAPPアプリケーションで実行できるさまざまなタイプのテストは何ですか? Mar 27, 2025 pm 04:59 PM

この記事では、ユニット、統合、機能、UI/UX、パフォーマンス、クロスプラットフォーム、セキュリティテストなど、UNIAPPアプリケーションのさまざまなテストタイプについて説明します。また、クロスプラットフォームの互換性を確保し、JESのようなツールを推奨しています

Uniappアプリケーションパッケージのサイズをどのように削減できますか? Uniappアプリケーションパッケージのサイズをどのように削減できますか? Mar 27, 2025 pm 04:45 PM

この記事では、コードの最適化、リソース管理、コード分割や怠zyなロードなどの手法に焦点を当てたUniappパッケージサイズを削減する戦略について説明します。

UNIAPP開発に利用できるデバッグツールは何ですか? UNIAPP開発に利用できるデバッグツールは何ですか? Mar 27, 2025 pm 05:05 PM

この記事では、Hbuilderx、Wechat開発者ツール、Chrome Devtoolsなどのツールに焦点を当てたUniapp開発のためのデバッグツールとベストプラクティスについて説明します。

UNI-APPプロジェクトのファイル構造は何ですか? UNI-APPプロジェクトのファイル構造は何ですか? Mar 14, 2025 pm 06:55 PM

この記事は、Uni-APPプロジェクトのファイル構造を詳しく説明し、一般的な、コンポーネント、ページ、静的、ユニクロードなどの主要なディレクトリ、およびapp.vue、main.js、manifest.json、pages.json、uni.scssなどの重要なファイルを説明します。これがどのようにoです

uni-appのストレージAPI(uni.setstorage、uni.getStorage)を使用するにはどうすればよいですか? uni-appのストレージAPI(uni.setstorage、uni.getStorage)を使用するにはどうすればよいですか? Mar 18, 2025 pm 12:22 PM

この記事では、ローカルデータ管理のためにUni-AppのストレージAPI(uni.setstorage、uni.getStorage)を使用する方法について説明し、ベストプラクティス、トラブルシューティング、および効果的な使用のための制限と考慮事項について説明します。

デバイス機能(カメラ、ジオロケーションなど)にアクセスするためにUni-AppのAPIを使用するにはどうすればよいですか? デバイス機能(カメラ、ジオロケーションなど)にアクセスするためにUni-AppのAPIを使用するにはどうすればよいですか? Mar 18, 2025 pm 12:06 PM

この記事では、UNI-APPのAPIを使用して、許可設定やエラー処理など、カメラやジオロケーションなどのデバイス機能にアクセスします。

See all articles