码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • uniapp:使用subNVue原生子窗体在map上层添加自定义组件


    我们想要在地图上层添加自定义组件,比如一个数据提示框,点一下会展开,再点一下收起,在h5段显示正常,但是到app端真机测试发现组件显示不出来,这是因为map是内置原生组件,层级最高,自定义组件被挡住了,无论如何设置自定义组件的z-index都没有用。

    如果只是简单加一点文字之类,直接放在cover-view里,就可以显示在map上层了,但如果内容很复杂,最好使用subNVue,hello uniapp里也有例子,在实例-接口-界面下边。

    1、创建一个nvue页面,也就是需要在map上层显示的组件,这是子组件,原生子窗体只能用nvue开发,必须遵循nvue的语法规则,很多uniapp组件在nvue里使用不了,很多css也使用不了,这是比较考验耐心的,开发前多研究一下nvue和vue的区别,据说uView全面兼容nvue,可以使用uView组件来开发nvue页面。

    nvue所支持的通用样式已在本文档中全部列出,一些组件可能有自定义样式,请参考组件文档。除此之外的属性,均不被支持。 | uni-app官网

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. open: false
    6. }
    7. },
    8. methods: {
    9. onclick() {
    10. this.open = !this.open;
    11. }
    12. }
    13. }
    14. script>
    15. <style scoped>
    16. .open {
    17. position: absolute;
    18. top: 50%;
    19. right: 15%;
    20. width: 200upx;
    21. height: 200upx;
    22. background-color: #ff007f;
    23. }
    24. .close {
    25. position: absolute;
    26. top: 50%;
    27. right: 15%;
    28. width: 50upx;
    29. height: 200upx;
    30. background-color: #ff007f;
    31. }
    32. style>

    2、在地图显示的这个页面里的pages.json,如下图配置:

    position设置为absolute,top设置为50%,left和right这些不用设置了,作用不大,具体位置放到nvue页面去设置,背景色一定要设置为透明。

    1. "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
    2. {
    3. "path": "pages/index/index",
    4. "style": {
    5. "navigationBarTitleText": "uni-app",
    6. "app-plus": {
    7. "subNVues": [
    8. {
    9. "id": "tip", // 唯一标识
    10. "path": "pages/index/component/tip", // 页面路径
    11. "style": {
    12. "position": "absolute",//设置位置
    13. "top": "50%",
    14. "background": "transparent"//一定要设置为透明背景,否则会跟map并排显示
    15. }
    16. }
    17. ]
    18. }
    19. }
    20. }
    21. ],

    在index页面不需要引入tip组件,直接运行index页面,组件就可以显示了,如果需要动态控制原生子窗体的显示隐藏,参考官网:uni-app官网

    uni-app subNVue 原生子窗体开发指南 - DCloud问答

    这个代码里getSubNVueById的参数,也就是pages.json里配置的id,是原生子窗体的唯一标识。

    1. // 通过 id 获取 nvue 子窗体
    2. const subNVue = uni.getSubNVueById('tip')
    3. // 打开 nvue 子窗体
    4. subNVue.show('slide-in-left', 300, function(){
    5. // 打开后进行一些操作...
    6. //
    7. });
    8. // 关闭 nvue 子窗体
    9. subNVue.hide('fade-out', 300)

     最终效果:

  • 相关阅读:
    Differentiable Scaffolding Tree for Molecule Optimization(论文解读)
    Flink 重启策略和故障恢复策略
    rhcsa学习3 文件
    2022年最新的西安Java培训机构十大排名榜单
    柱形图:制作图表时,有时会遇到柱形图系列没有居中显示,例如:
    Linux补充知识:
    质数(素数)prime :只能被 1 和 它本身整除的自然数,不可再分,(三种方式求出质数)
    哪里有期货开户的正规途径?
    毫秒级上传批量附件
    php计算机毕业设计 基于微信小程序的房屋出租租赁 小程序 uniapp
  • 原文地址:https://blog.csdn.net/lilycheng1986/article/details/133884625
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号