广告位联系
返回顶部
分享到

uniapp自定义弹框的方法

JavaScript 来源:互联网 作者:佚名 发布时间:2022-08-23 15:56:03 人浏览
摘要

效果原理 利用透明页面,点击进入当前页面,内容根据自己需求去实现,随便自定义,出来的效果就是一个弹框的效果。解决的难题(原生tabbar中间按钮的弹框,升级弹框不能遮挡原生

效果原理

利用透明页面,点击进入当前页面,内容根据自己需求去实现,随便自定义,出来的效果就是一个弹框的效果。解决的难题(原生tabbar中间按钮的弹框,升级弹框不能遮挡原生tabbar)

创建一个vue页面

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

<template>

    <view @click="close()" class="mask">

        <view class="content">

            <view class="" @click.stop="doScanCode">点击扫码</view>

            <view class="" @click.stop="doDialog">点击弹出</view>

        </view>

    </view>

</template>

 

<script>

    export default {

        data() {

            return {

                 

            }

        },

        methods: {

            close() {

                uni.navigateBack()

            },

            doDialog() {

                uni.showModal({

                    title:'uniapp弹框'

                })

            },

            doScanCode() {

                uni.scanCode({

                    success: function(res) {

                        console.log('条码类型:' + res.scanType);

                        console.log('条码内容:' + res.result);

                        uni.navigateTo({

                            url:'../scancode/scancode'

                        })

                    }

                });

            }

        }

    }

</script>

 

<style>

    page {

        background: transparent;

    }

     

    .mask {

        position: fixed;

        left: 0;

        top: 0;

        right: 0;

        bottom: 0;

        /* #ifndef APP-NVUE */

        display: flex;

        /* #endif */

        justify-content: center;

        align-items: center;

        background-color: rgba(0, 0, 0, 0.4);

    }

     

    .content {

        width: 200px;

        height: 200px;

        background-color: #007AFF;

        /* margin-bottom: 140upx; */

        display: flex;

        justify-content: space-between;

        align-items: center;

    }

</style>

pages.json配置

1

2

3

4

5

6

7

8

9

10

{// 点击tabbar中间的按钮进入此页面,设置为透明的,当做一个弹框,

"path": "pages/midDialog/midDialog",

    "style": {

        "background": "transparent",

        "app-plus": {

            "titleNView": false

        }

    }

 

}

一般tabbar中间按钮点击出现弹框

1

2

3

4

5

6

7

8

9

10

11

// 这些是要写在App.vue中onLaunch里边

uni.onTabBarMidButtonTap(() => {

    uni.navigateTo({

        url: '/pages/midDialog/midDialog',

        animationType: 'fade-in',

        animationDuration: 200,

        fail(err) {

            console.log(err)

        }

    });

})

注意事项

在真机运行下测试,在模拟器中,由于模拟器性能不完善,导致透明效果有时会失败,反正app最后都是运行在手机上,何不直接用真机运行呢


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/qq_45952585/article/details/121157702
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计