Maison > interface Web > uni-app > le corps du texte

uniapp détermine si l'écran est horizontal ou vertical

WBOY
Libérer: 2023-05-22 13:29:09
original
2624 Les gens l'ont consulté

Sur les appareils mobiles, différentes orientations d'écran peuvent correspondre à différents effets d'affichage. Par conséquent, les développeurs doivent effectuer un jugement et un traitement pertinents sur l'orientation de l'écran dans l'application. Dans le framework uniapp, nous pouvons utiliser l'API fournie par uniapp pour déterminer si l'écran est horizontal ou vertical.

1. Utilisez l'API fournie par uniapp pour déterminer l'orientation de l'écran

uniapp fournit une API uni.getSystemInfo, qui peut être utilisée pour obtenir les informations système de l'appareil, y compris l'orientation actuelle de l'écran de l'appareil. La mise en œuvre spécifique est la suivante :

// 获取系统信息
const systemInfo = uni.getSystemInfoSync();
// 设备屏幕宽度
const screenWidth = systemInfo.screenWidth;
// 设备屏幕高度
const screenHeight = systemInfo.screenHeight;
// 设备屏幕方向
const orientation = screenWidth > screenHeight ? 'landscape' : 'portrait';
Copier après la connexion

En obtenant les informations système de l'appareil, nous pouvons obtenir la largeur et la hauteur de l'écran de l'appareil, et comparer les deux valeurs pour déterminer l'orientation de l'écran de l'appareil actuel.

2. Effectuer le traitement associé en fonction de l'orientation de l'écran

Après avoir obtenu l'orientation de l'écran de l'appareil, nous pouvons effectuer le traitement associé via les méthodes correspondantes. Voici quelques méthodes de traitement courantes :

  1. Lorsque l'appareil est en mode paysage, nous pouvons désactiver le défilement vertical de la page et ajouter des éléments horizontaux à la page pour rendre l'affichage de la page plus raisonnable.
if (orientation === 'landscape') {
  // 禁用竖屏滚动
  document.body.style.overflow = 'hidden';
  // 页面横向排列
  document.body.style.flexDirection = 'row';
}
Copier après la connexion
  1. Lorsque l'appareil est en mode portrait, nous pouvons restaurer le défilement vertical de la page et ajuster la disposition des éléments de la page à la verticale.
if (orientation === 'portrait') {
  // 恢复竖屏滚动
  document.body.style.overflow = '';
  // 页面竖向排列
  document.body.style.flexDirection = 'column';
}
Copier après la connexion
  1. Dans le développement d'Uniapp, nous pouvons également utiliser l'attribut calculé Watcher de vue pour mettre en page la page de manière réactive, obtenant ainsi une mise en page adaptative dans différentes directions d'écran.
export default {
  data() {
    return {
      screenWidth: '',
      screenHeight: '',
    }
  },
  computed: {
    isLandscape() {
      return this.screenWidth > this.screenHeight;
    },
    containerStyle() {
      return {
        flexDirection: this.isLandscape ? 'row' : 'column',
        // 其他布局样式
      }
    }
  },
  methods: {
    handleResize() {
      const systemInfo = uni.getSystemInfoSync();
      this.screenWidth = systemInfo.screenWidth;
      this.screenHeight = systemInfo.screenHeight;
    },
  },
  mounted() {
    // 监听窗口改变
    window.addEventListener('resize', this.handleResize, false);
    this.handleResize();
  },
  unmounted() {
    window.removeEventListener('resize', this.handleResize, false);
  }
}
Copier après la connexion

Grâce au code ci-dessus, nous pouvons gérer la page dans une mise en page réactive et modifier dynamiquement la disposition des pages en fonction des changements d'orientation de l'écran, obtenant ainsi des opérations de mise en page plus flexibles.

3. Résumé

En général, dans le développement d'uniapp, nous pouvons utiliser l'API système fournie par uniapp pour obtenir la direction de l'écran de l'appareil, puis traiter la page en fonction de la situation spécifique. Lors de la mise en œuvre d'une mise en page adaptative dans différentes directions d'écran, nous pouvons utiliser l'attribut calculé Watcher de vue pour mettre en page la page de manière réactive, améliorant ainsi considérablement l'efficacité du développement et la qualité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal