Table des matières
Utilisez CSS pour implémenter la modification de base de l'image d'arrière-plan
使用 localStorage 实现背景图缓存
Maison interface Web uni-app Comment utiliser CSS pour modifier dynamiquement l'image d'arrière-plan dans UniApp

Comment utiliser CSS pour modifier dynamiquement l'image d'arrière-plan dans UniApp

Apr 18, 2023 am 09:47 AM

UniApp est un framework de développement multiplateforme qui nous permet d'utiliser HTML, CSS et JavaScript pour créer des applications basées sur plusieurs plateformes, telles que les mini-programmes WeChat, les mini-programmes Alipay, etc. Dans ce processus, la modification dynamique de l’image d’arrière-plan est une exigence courante. Cet article explique comment utiliser CSS pour modifier dynamiquement l'image d'arrière-plan dans UniApp.

Utilisez CSS pour implémenter la modification de base de l'image d'arrière-plan

L'attribut background-image en CSS est utilisé pour définir l'image d'arrière-plan d'un élément. Nous pouvons utiliser JavaScript pour modifier dynamiquement les propriétés CSS des éléments afin d'obtenir l'effet de modification dynamique de l'image d'arrière-plan. Montrons comment implémenter cette fonction dans UniApp. background-image 属性用于设置元素的背景图。我们可以使用 JavaScript 动态修改元素的 CSS 属性,以达到动态修改背景图的效果。下面我们来演示一下如何在 UniApp 中实现这一功能。

  1. 创建一个包含图片 URL 的数组

首先,我们需要创建一个包含图片 URL 的数组,用于存储我们希望动态修改的背景图片。

// 在 data 中定义 bgUrls 数组
data() {
  return {
    bgUrls: [
      'https://example.com/bg1.jpg',
      'https://example.com/bg2.jpg',
      'https://example.com/bg3.jpg'
    ],
    currentBgIndex: 0 // 记录当前背景图索引
  }
}
Copier après la connexion
  1. 在模板中添加一个容器元素

在模板中添加一个容器元素,作为我们需要动态修改背景图的元素。这里我们使用 div 元素作为容器。

<template>
  <div class="bg-container">
    <!-- 此处添加页面内容 -->
  </div>
</template>
Copier après la connexion
  1. style 中设置背景图片的初始值

style 中设置背景图片的初始值。这里我们使用数组中的第一个 URL 作为初始值。建议设置一个默认的背景图,以防止第一个 URL 加载失败时页面没有背景图。

<style>
  .bg-container {
    background-image: url('{{ bgUrls[currentBgIndex] }}');
  }
</style>
Copier après la connexion
  1. 在方法中修改背景图

最后,在需要修改背景图的方法中,我们可以动态修改 currentBgIndex 的值,并使用 document.querySelector('.bg-container').style.backgroundImage 来修改背景图。同时,为了防止数组越界,我们需要将 currentBgIndex 模拟成一个循环数组,当超过数组长度时,将其设为 0。

methods: {
  changeBg() {
    this.currentBgIndex = (this.currentBgIndex + 1) % this.bgUrls.length;
    document.querySelector('.bg-container').style.backgroundImage = 'url(' + this.bgUrls[this.currentBgIndex] + ')';
  }
}
Copier après la connexion

使用以上步骤,我们就可以实现基本的背景图修改功能。但是,这种方法在性能上不是最优的。每次修改背景图,都需要重新加载图片资源,给服务器造成一定的负担。因此,我们需要在此基础上进一步优化。

使用 localStorage 实现背景图缓存

我们可以使用 localStorage 缓存已经加载过的背景图,下次需要加载同一图片时,直接从本地缓存中读取,提高加载速度,减少服务器负担。

以下是实现方法:

  1. created
    1. Créer un tableau contenant les URL des images

    Tout d'abord, nous devons créer un tableau contenant les URL des images pour stocker l'image d'arrière-plan que nous souhaitons modifier dynamiquement.
      created() {
        this.bgUrls.forEach((url) => {
          const img = new Image();
          img.src = url;
          img.onload = () => {
            window.localStorage.setItem(url, img.src);
          };
        });
      }
      Copier après la connexion
    1. Ajoutez un élément conteneur au modèle

    Ajoutez un élément conteneur au modèle comme élément dont nous avons besoin pour modifier dynamiquement l'image d'arrière-plan. Ici, nous utilisons l'élément div comme conteneur.

    methods: {
      getBgUrl() {
        const url = this.bgUrls[this.currentBgIndex];
        const cachedUrl = window.localStorage.getItem(url);
        if (cachedUrl) {
          return cachedUrl;
        }
        const img = new Image();
        img.src = url;
        img.onload = () => {
          window.localStorage.setItem(url, this.img.src);
        };
        return url;
      },
      changeBg() {
        this.currentBgIndex = (this.currentBgIndex + 1) % this.bgUrls.length;
        document.querySelector('.bg-container').style.backgroundImage = 'url(' + this.getBgUrl() + ')';
      }
    }
    Copier après la connexion
      Définissez la valeur initiale de l'image d'arrière-plan dans style

      🎜Définissez la valeur initiale de l'image d'arrière-plan dans style. Ici, nous utilisons la première URL du tableau comme valeur initiale. Il est recommandé de définir une image d'arrière-plan par défaut pour éviter que la page n'ait aucune image d'arrière-plan lorsque la première URL ne parvient pas à se charger. 🎜rrreee
        🎜Modifier l'image de fond dans la méthode🎜🎜🎜Enfin, dans la méthode qui doit modifier l'image de fond, on peut modifier dynamiquement la valeur de currentBgIndex et utilisez document.querySelector('.bg-container').style.backgroundImage pour modifier l'image d'arrière-plan. Dans le même temps, afin d'empêcher le tableau de sortir des limites, nous devons simuler currentBgIndex dans un tableau circulaire et le définir sur 0 lorsque la longueur du tableau est dépassée. 🎜rrreee🎜En utilisant les étapes ci-dessus, nous pouvons implémenter la fonction de base de modification de l'image d'arrière-plan. Cependant, cette approche n’est pas optimale en termes de performances. Chaque fois que vous modifiez l'image d'arrière-plan, vous devez recharger les ressources de l'image, ce qui impose une certaine charge au serveur. Nous devons donc optimiser davantage sur cette base. 🎜🎜Utilisez localStorage pour implémenter la mise en cache de l'image d'arrière-plan🎜🎜Nous pouvons utiliser localStorage pour mettre en cache l'image d'arrière-plan chargée la prochaine fois que nous aurons besoin de charger la même image, nous la lirons directement à partir du cache local, ce qui améliore la vitesse de chargement et réduit la vitesse de chargement. charge sur le serveur. 🎜🎜Voici la méthode d'implémentation : 🎜
          🎜Chargez l'image d'arrière-plan dans la fonction de cycle de vie created 🎜🎜🎜Chargez toutes les images d'arrière-plan qui doivent être utilisées lors de la création du composant et stockez-les dans le cache local. Ici, nous utilisons window.localStorage pour stocker le cache local, et la clé peut être nommée selon vos propres besoins. 🎜rrreee🎜🎜Encapsuler la lecture du cache local dans une méthode🎜🎜🎜Dans la méthode, s'il y a une image correspondant à l'URL dans le cache local, l'URL de l'image locale est utilisée directement. Sinon, chargez l'image depuis le serveur et stockez-la dans le cache local avant d'utiliser l'URL de l'image. De cette façon, même si la page est actualisée, les images chargées existent toujours dans le cache local et peuvent être lues directement depuis le local, réduisant ainsi le nombre de requêtes du serveur. 🎜rrreee🎜En utilisant les étapes ci-dessus, nous pouvons modifier dynamiquement l'image d'arrière-plan, tout en réduisant le nombre de requêtes du serveur et en améliorant les performances de la page en mettant en cache les images chargées. 🎜🎜Pour résumer, cet article explique comment utiliser CSS pour modifier dynamiquement l'image d'arrière-plan dans UniApp et utiliser localStorage pour implémenter la mise en cache de l'image d'arrière-plan, ce qui améliore les performances de la page, réduit les requêtes du serveur et fournit une implémentation digne de référence pour la pratique de développement. . 🎜

    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 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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Comment déverrouiller tout dans Myrise
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment gérer le stockage local à Uni-App? Comment gérer le stockage local à Uni-App? Mar 11, 2025 pm 07:12 PM

    Cet article détaille les API de stockage local d'Uni-App (Uni.SetStorageSync (), Uni.GetStoragesYnc (), et leurs homologues asynchrones), mettant l'accent sur les meilleures pratiques telles que l'utilisation de clés descriptives, la limitation de la taille des données et la gestion de l'analyse JSON. Ça souligne que lo

    Comment utiliser les API de géolocalisation Uni-App? Comment utiliser les API de géolocalisation Uni-App? Mar 11, 2025 pm 07:14 PM

    Cet article détaille les API de géolocalisation d'Uni-App, en se concentrant sur Uni.getLocation (). Il traite des pièges communs comme des systèmes de coordonnées incorrects (GCJ02 vs WGS84) et des problèmes d'autorisation. Améliorer la précision de l'emplacement via des lectures en moyenne et une manipulation

    Comment faire des demandes d'API et gérer les données dans Uni-App? Comment faire des demandes d'API et gérer les données dans Uni-App? Mar 11, 2025 pm 07:09 PM

    Cet article détaille la fabrication et la sécurisation des demandes d'API dans Uni-App à l'aide de Uni.Request ou Axios. Il couvre la gestion des réponses JSON, les meilleures pratiques de sécurité (HTTPS, authentification, validation des entrées), dépannage des échecs (problèmes de réseau, CORS, S

    Comment gérer l'état à Uni-App à l'aide de Vuex ou PINIA? Comment gérer l'état à Uni-App à l'aide de Vuex ou PINIA? Mar 11, 2025 pm 07:08 PM

    Cet article compare Vuex et PINIA pour la gestion de l'État à Uni-App. Il détaille leurs fonctionnalités, leur implémentation et leurs meilleures pratiques, mettant en évidence la simplicité de Pinia contre la structure de Vuex. Le choix dépend de la complexité du projet, avec Pinia Suita

    Comment utiliser les API de partage social de l'Uni-App? Comment utiliser les API de partage social de l'Uni-App? Mar 13, 2025 pm 06:30 PM

    L'article détaille comment intégrer le partage social dans les projets Uni-App à l'aide de l'API Uni.share, couvrant la configuration, la configuration et les tests sur des plateformes comme WeChat et Weibo.

    Comment utiliser la fonction Easycom d'Uni-App pour l'enregistrement des composants automatiques? Comment utiliser la fonction Easycom d'Uni-App pour l'enregistrement des composants automatiques? Mar 11, 2025 pm 07:11 PM

    Cet article explique la fonctionnalité Easycom d'Uni-App, l'automatisation de l'enregistrement des composants. Il détaille la configuration, y compris Autoscan et la cartographie des composants personnalisés, mettant en évidence des avantages tels que la binelle réduite, la vitesse améliorée et la lisibilité améliorée.

    Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Mar 18, 2025 pm 12:20 PM

    L'article discute de l'utilisation de SASS et moins de préprocesseurs dans UNI-APP, de la configuration de détail, des avantages sociaux et de la double utilisation. L'accent principal est sur la configuration et les avantages. [159 caractères]

    Comment utiliser l'API UNI.Request Uni-App pour faire des demandes HTTP? Comment utiliser l'API UNI.Request Uni-App pour faire des demandes HTTP? Mar 11, 2025 pm 07:13 PM

    Cet article détaille l'API UNI.Request dans Uni-App pour faire des demandes HTTP. Il couvre l'utilisation de base, les options avancées (méthodes, en-têtes, types de données), techniques de traitement des erreurs robustes (rappels d'échec, vérification du code d'état) et intégration avec Authenticat

    See all articles