Jadual Kandungan
Gunakan CSS untuk melaksanakan pengubahsuaian imej latar belakang asas
Rumah hujung hadapan web uni-app Cara menggunakan CSS untuk mengubah suai imej latar belakang secara dinamik dalam UniApp

Cara menggunakan CSS untuk mengubah suai imej latar belakang secara dinamik dalam UniApp

Apr 18, 2023 am 09:47 AM

UniApp ialah rangka kerja pembangunan merentas platform yang membolehkan kami menggunakan HTML, CSS dan JavaScript untuk membina aplikasi berdasarkan berbilang platform, seperti program mini WeChat, program mini Alipay, dsb. Dalam proses ini, mengubah suai imej latar belakang secara dinamik adalah keperluan biasa. Artikel ini akan memperkenalkan cara menggunakan CSS untuk mengubah suai imej latar belakang secara dinamik dalam UniApp.

Gunakan CSS untuk melaksanakan pengubahsuaian imej latar belakang asas

Atribut background-image dalam CSS digunakan untuk menetapkan imej latar belakang elemen. Kami boleh menggunakan JavaScript untuk mengubah suai sifat CSS unsur secara dinamik untuk mencapai kesan mengubah suai imej latar belakang secara dinamik. Mari kita tunjukkan cara melaksanakan fungsi ini dalam UniApp.

  1. Buat tatasusunan yang mengandungi URL imej

Pertama, kita perlu mencipta tatasusunan yang mengandungi URL imej untuk menyimpan imej latar belakang yang ingin kita ubah suai secara dinamik.

// 在 data 中定义 bgUrls 数组
data() {
  return {
    bgUrls: [
      'https://example.com/bg1.jpg',
      'https://example.com/bg2.jpg',
      'https://example.com/bg3.jpg'
    ],
    currentBgIndex: 0 // 记录当前背景图索引
  }
}
Salin selepas log masuk
  1. Tambahkan elemen bekas pada templat

Tambahkan elemen bekas pada templat sebagai elemen yang kita perlukan untuk mengubah suai imej latar belakang secara dinamik. Di sini kami menggunakan elemen div sebagai bekas.

<template>
  <div class="bg-container">
    <!-- 此处添加页面内容 -->
  </div>
</template>
Salin selepas log masuk
  1. Tetapkan nilai awal imej latar belakang dalam style

Tetapkan nilai awal imej latar belakang dalam style. Di sini kita menggunakan URL pertama dalam tatasusunan sebagai nilai awal. Adalah disyorkan untuk menetapkan imej latar belakang lalai untuk mengelakkan halaman daripada tidak mempunyai imej latar belakang apabila URL pertama gagal dimuatkan.

<style>
  .bg-container {
    background-image: url('{{ bgUrls[currentBgIndex] }}');
  }
</style>
Salin selepas log masuk
  1. Ubah suai imej latar belakang dalam kaedah

Akhir sekali, dalam kaedah yang perlu mengubah suai imej latar belakang, kita boleh mengubah suai nilai dan gunakan currentBgIndex untuk mengubah suai imej latar belakang. Pada masa yang sama, untuk mengelakkan tatasusunan daripada keluar dari had, kita perlu mensimulasikan document.querySelector('.bg-container').style.backgroundImage ke dalam tatasusunan bulat dan menetapkannya kepada 0 apabila panjang tatasusunan melebihi. currentBgIndex

methods: {
  changeBg() {
    this.currentBgIndex = (this.currentBgIndex + 1) % this.bgUrls.length;
    document.querySelector('.bg-container').style.backgroundImage = 'url(' + this.bgUrls[this.currentBgIndex] + ')';
  }
}
Salin selepas log masuk
Menggunakan langkah di atas, kita boleh melaksanakan fungsi pengubahsuaian imej latar belakang asas. Walau bagaimanapun, pendekatan ini tidak optimum dari segi prestasi. Setiap kali anda mengubah suai imej latar belakang, anda perlu memuat semula sumber imej, yang meletakkan beban tertentu pada pelayan. Oleh itu, kita perlu mengoptimumkan lagi atas dasar ini.

Gunakan localStorage untuk melaksanakan caching imej latar belakang

Kita boleh menggunakan localStorage untuk cache imej latar belakang yang dimuatkan Lain kali kita perlu memuatkan imej yang sama, kita boleh membacanya terus dari cache setempat ke meningkatkan kelajuan memuatkan.

Berikut ialah kaedah pelaksanaan:

    Muatkan imej latar belakang dalam
  1. fungsi kitaran hayat created
Buat semua imej latar belakang yang perlu digunakan dalam komponen Semua dimuatkan dan disimpan dalam cache tempatan. Di sini kami menggunakan window.localStorage untuk menyimpan cache setempat, dan kunci boleh dinamakan mengikut keperluan anda sendiri.

created() {
  this.bgUrls.forEach((url) => {
    const img = new Image();
    img.src = url;
    img.onload = () => {
      window.localStorage.setItem(url, img.src);
    };
  });
}
Salin selepas log masuk
    Enkapsulasi membaca cache setempat ke dalam kaedah
Dalam kaedah, jika terdapat imej yang sepadan dengan URL dalam cache setempat, gunakan setempat URL imej secara langsung. Jika tidak, muatkan imej dari pelayan dan simpannya dalam cache setempat sebelum menggunakan URL imej. Dengan cara ini, walaupun halaman dimuatkan semula, imej yang dimuatkan masih wujud dalam cache setempat dan boleh dibaca terus dari tempatan, sekali gus mengurangkan bilangan permintaan pelayan.

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() + ')';
  }
}
Salin selepas log masuk
Menggunakan langkah di atas, kami boleh mengubah suai imej latar belakang secara dinamik, dan pada masa yang sama mengurangkan bilangan permintaan pelayan dan meningkatkan prestasi halaman dengan menyimpan imej yang dimuatkan.

Ringkasnya, artikel ini memperkenalkan cara menggunakan CSS untuk mengubah suai imej latar belakang secara dinamik dalam UniApp, dan menggunakan localStorage untuk melaksanakan caching imej latar belakang, yang meningkatkan prestasi halaman, mengurangkan permintaan pelayan dan menyediakan amalan pembangunan. rujukan bernilai pelaksanaan.

Atas ialah kandungan terperinci Cara menggunakan CSS untuk mengubah suai imej latar belakang secara dinamik dalam UniApp. 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
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)

Bagaimana saya menggunakan API perkongsian sosial Uni-app? Bagaimana saya menggunakan API perkongsian sosial Uni-app? Mar 13, 2025 pm 06:30 PM

Artikel ini memperincikan bagaimana untuk mengintegrasikan perkongsian sosial ke dalam projek Uni-app menggunakan API Uni.share, meliputi persediaan, konfigurasi, dan ujian di seluruh platform seperti WeChat dan Weibo.

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]

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

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.

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.

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.

Apakah struktur fail projek uni-app? Apakah struktur fail projek uni-app? Mar 14, 2025 pm 06:55 PM

Artikel ini memperincikan struktur fail projek uni-app, menerangkan direktori utama seperti biasa, komponen, halaman, statik, dan unicloud, dan fail penting seperti app.vue, main.js, manifest.json, halaman.json, dan uni.scss. Ia membincangkan bagaimana ini o

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.

See all articles