Rumah >hujung hadapan web >uni-app >animasi halaman tersembunyi uniapp

animasi halaman tersembunyi uniapp

王林
王林asal
2023-05-22 11:35:37784semak imbas

Dengan pempopularan telefon pintar dan Internet mudah alih, kehidupan dan pekerjaan orang moden secara beransur-ansur tidak dapat dipisahkan daripada pelbagai APP, sebagai salah satu modul asas telefon pintar, telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian kita. Dalam banyak aplikasi, beberapa halaman tersembunyi telah menjadi salah satu fungsi yang pengguna suka bermain, menarik perhatian ramai pengguna. Jadi, bagaimana untuk mencapai kesan animasi halaman tersembunyi sedemikian dalam uniapp? Artikel ini akan memberi anda pengenalan dan penjelasan terperinci.

Apakah itu uniapp

Uniapp ialah rangka kerja bahagian hadapan yang boleh mencapai pembangunan merentas platform Ia boleh dibangunkan berdasarkan vue.js dan boleh membungkus kod yang dibangunkan ke dalam aplikasi asli . Daya tarikan uniapp kepada pembangun terletak pada keserasian yang sangat tinggi, pembangunan pantas dan kebolehkonfigurasian yang tinggi Ini adalah rangka kerja yang sangat mesra untuk pemula.

Pelaksanaan animasi halaman tersembunyi

Untuk melaksanakan halaman tersembunyi dalam uniapp, anda perlu menggunakan komponen bar navigasi Komponen ini boleh melaksanakan fungsi bar navigasi biasa, termasuk lompatan halaman, dsb. Untuk mencapai kesan ini, kami perlu memperkenalkan penyelesaian pengurusan keadaan Vuex Dalam uniapp, penggunaan Vuex boleh mengawal lompatan halaman secara fleksibel.

Pertama sekali, kami perlu memantau lompatan halaman dalam fail App.vue Untuk bahagian kod ini, anda boleh merujuk kepada pelaksanaan berikut:

// App.vue文件
<template>
    <div>
        <navigation-bar></navigation-bar>
        <router-view></router-view>
    </div>
</template>
<script>
    import navigationBar from 'uni-app-navigation-bar';
    import store from './store';  // 引入Vuex

    navigationBar.use(store);  // 通过use方法启用Vuex

    export default {
        components: {
            navigationBar,
        }
    }
</script>

Dalam kod, kami. pertama bahagikan App.vue kepada Ia mempunyai dua bahagian, satu ialah bar navigasi dan satu lagi ialah bahagian pandangan penghalaan. Kemudian perkenalkan bar navigasi dan simpan, dan dayakan Vuex dengan memanggil kaedah navigationBar.use. Dengan cara ini, dalam pelaksanaan seterusnya, kita boleh terus menggunakan kedai untuk mengawal lompatan halaman.

Dalam penyelesaian Vuex, kami menggunakan keadaan untuk menyimpan keadaan halaman semasa, mutasi digunakan untuk menukar keadaan keadaan dan tindakan digunakan untuk menyerahkan gelagat mutasi. Dengan cara ini, kita boleh menambah komponen pada setiap halaman tersembunyi untuk pelaksanaan yang sepadan. Dalam komponen, kita boleh memulakan keadaan komponen melalui kaedah onLoad, melompat dan menyembunyikan mengikut keadaan dalam stor dalam kaedah onShow dan menukar keadaan halaman semasa melalui panggilan mutasi.

// HiddenPage.vue文件
<template>
    <div>
        <navigation-bar :back="true"></navigation-bar>
        <div class="hidden-page-container" @click="hiddenPage">
            <div class="hidden-page-content">我是隐藏页面,在这里可以放些内容</div>
        </div>
    </div>
</template>
<script>
    import { mapState, mapMutations } from 'vuex';

    export default {
        data() {
            return {
                hidden: false,  // 默认显示状态
            }
        },

        computed: mapState({
            hiddenPageState: state => state.hiddenPage.isShow
        }),

        methods: {
            ...mapMutations({
                setHidden: 'hiddenPage/setHidden',
            }),

            onLoad() {
                // 初始化组件状态
                this.hidden = false;
                this.setHidden(false);
            },

            onShow() {
                // 判断状态,进行页面跳转和隐藏
                if (this.hiddenPageState) {
                    uni.navigateTo({ url: '/pages/hiddenPage/hiddenPage' });
                    this.setHidden(false);
                } else {
                    this.hidden = true;
                }
            },

            hiddenPage() {
                // 点击事件,实现页面的隐藏和跳转
                this.hidden = true;
                this.setHidden(true);
                setTimeout(() => {
                    uni.navigateTo({ url: '/pages/hiddenPage/hiddenPage' });
                    this.setHidden(false);
                }, 300);
            }
        }
    }
</script>
<style>
    /* 样式部分 */
    .hidden-page-container {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0,0,0,0.8);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: 999;
        opacity: 1;
        transition: all 0.3s;
    }
    .hidden-page-container.hidden {
        opacity: 0;
    }
    .hidden-page-content {
        width: 80%;
        height: 80%;
        background-color: #fff;
        border-radius: 10px;
        padding: 20px;
        font-size: 16px;
        text-align: center;
    }
</style>

Seperti yang dapat dilihat daripada kod, kami menambahkan komponen hiddenPageContainer pada HiddenPage.vue, yang berfungsi sebagai bahagian teras penyembunyian dan digunakan untuk mencapai kesan penyembunyian. Kami melaksanakan animasi tersembunyi selepas mengklik dalam acara klik hiddenPage, dan mencapai kesan kecerunan dengan menetapkan atribut kelegapan dan peralihan. Pada masa yang sama, kami menukar keadaan kedai dengan memanggil mutasi untuk mengawal lompatan dan penyembunyian halaman.

Ringkasan

Artikel ini memperkenalkan anda kepada kesan animasi halaman tersembunyi dalam uniapp. Kami menggunakan Vuex untuk mengurus status halaman, dan menggunakan bar navigasi untuk melaksanakan lompat halaman dan fungsi lain. Kami berharap artikel ini dapat membantu pembangun uniapp Jika anda mempunyai sebarang soalan atau masalah semasa proses pelaksanaan, sila tinggalkan mesej di bawah dan kami akan membalas dan menjawab secepat mungkin.

Atas ialah kandungan terperinci animasi halaman tersembunyi uniapp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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