Maison >interface Web >uni-app >Comment réaliser un effet de navigation glissant vers le haut et masqué dans Uniapp

Comment réaliser un effet de navigation glissant vers le haut et masqué dans Uniapp

PHPz
PHPzoriginal
2023-04-17 14:16:061191parcourir

Dans la conception d'applications mobiles, la barre de navigation est un élément très important. Il permet aux utilisateurs de localiser rapidement les informations dont ils ont besoin et constitue également un élément visuel important d’une application. Cependant, pendant le processus de conception, nous devons non seulement prendre en compte le style et la disposition de la barre de navigation, mais également prêter attention à ses performances et à ses effets d'interaction dans différents scénarios.

Il est relativement facile d'obtenir l'effet de glisser vers le bas et de masquer la navigation dans uniapp. Il suffit d'utiliser quelques styles simples et du code JS pour y parvenir.

Tout d'abord, ajoutez un conteneur à la zone de navigation de la page, définissez son attribut de position sur fixe et son attribut z-index sur une valeur plus élevée afin qu'il soit toujours en haut de la page. Afin de masquer la navigation après avoir glissé vers le bas, nous pouvons utiliser l'attribut transform pour déplacer la barre de navigation hors de la plage visible de l'écran.

Les étapes spécifiques de mise en œuvre sont les suivantes :

  1. Ajoutez un conteneur de navigation nommé header et ajoutez-y le style et la mise en page de la navigation.
  2. Définissez la position initiale du conteneur de navigation en haut de l'écran.
  3. Utilisez JS pour écouter les événements de défilement de l'écran. Lorsque l'utilisateur glisse vers le bas, le conteneur de navigation sort de la plage visible de l'écran. À l’inverse, lorsque l’utilisateur fait glisser son doigt vers le haut, le conteneur de navigation revient en haut de l’écran.

L'implémentation spécifique du code est la suivante :

// html文件代码
<template>
  <div class="wrapper">
    <header>
      <!--导航内容-->
    </header>
    <!--主要内容区域-->
  </div>
</template>

<style>
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 50px;
    background-color: #fff;
    z-index: 999;
    transition: all .3s ease-in-out; // 添加过渡效果
  }
  
  header.hide {
    transform: translateY(-100%);
  }
</style>

<script>
  export default {
    data() {
      return {
        lastScrollTop: 0,
        isHeaderShow: true
      }
    },
    mounted() {
      window.addEventListener('scroll', this.onScroll)
    },
    destroyed() {
      window.removeEventListener('scroll', this.onScroll)
    },
    methods: {
      onScroll(e) {
        const currentScrollTop = document.documentElement.scrollTop
        if (currentScrollTop > 0 && currentScrollTop > this.lastScrollTop) {
          this.isHeaderShow = false
        } else {
          this.isHeaderShow = true
        }
        this.lastScrollTop = currentScrollTop
      }
    },
    computed: {
      headerClass() {
        return {
          hide: !this.isHeaderShow
        }
      }
    }
  }
</script>

Dans le code ci-dessus, nous utilisons la variable isHeaderShow pour marquer si la barre de navigation actuelle doit être affichée, utiliser des propriétés calculées pour lier le style du conteneur de navigation et ajouter un défilement événements dans la méthode JS Surveillez et contrôlez les changements selon que la barre de navigation est affichée ou non.

Il est à noter que pour que la barre de navigation fonctionne correctement, nous devons définir la hauteur du conteneur de navigation et nous assurer qu'il y a suffisamment d'espace entre la tête de la zone de contenu principale, sinon la barre de navigation et le contenu la zone se chevauchera.

En bref, en définissant la position sur fixe, en ajoutant des effets de transition et des attributs de transformation au conteneur de navigation, puis en contrôlant le mouvement du conteneur de navigation via l'écoute des événements de défilement, nous pouvons très simplement obtenir l'effet de glisser vers le bas pour masquer le navigation dans uniapp.

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!

Déclaration:
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