当前位置: 首页 > news >正文

微信小程序(十五)自定义导航栏

注释很详细,直接上代码

上一篇

新增内容:
1.组件文件夹创建方法
2.自定义组件的配置方法
3.外部修改组件样式(关闭样式隔离或传参)
创建组件文件夹

如果是手动创建建议注意在json文件声明:

mynav.json

{//声明为组件可将这一组文件设为自定义组件"component": true
}

在这里插入图片描述
这里完善一下组件的结构:
myNav.wxml

//后面那个样式是留着后面演示传参导入样式的
<view class="navigationBar custom-class"><view class="navigationBarTitle title-class">自定义标题</view>
</view>

myNav.wxss

.navigationBar{background-color: cornflowerblue;height: 80rpx;/* 预留顶部位置当刘海 */padding-top:80rpx ;display: flex;justify-content: center;
}.navigationBarTitle{font-weight: bold;
}

温馨提醒:不要在组件内使用标签选择器,因为不受样式隔离影响,会影响全局样式,ID选择器和属性选择器同理

自定义组件的配置方法

这里演示在页面的配置方法,全局使用的话方法相同

index.json

{//注册组件"usingComponents": {//key为名字,value为组件路径"myNav":"/components/myNav/myNav"},//修改成自定义模式(不修改无法生效)"navigationStyle": "custom"
}

使用方法

index.wxml

//没错就是这么简洁
<myNav></myNav>

效果演示:

在这里插入图片描述

外部修改组件样式的方法
一.通过关闭组件样式隔离实现

myNav.js

Component({options:{//设置样式共享(组件有默认的样式隔离,这里就是关掉样式隔离)addGlobalClass:true}
})

index.wxss

.navigationBar{//因为外部样式权值比内部低,会被覆盖,!important用于提高权值background-color: crimson !important;
}

效果演示

在这里插入图片描述

二.通过传参导入样式

先在组件的js文件声明需要外部传参的类

myNav.js

Component({externalClasses:["custom-class"],
})

使用操作:

index.wxss

//定义一个类并写入所需样式
//老规矩:外部传入记得用!important提高权值
.color-pink{background-color: pink !important;
}

index.wxml

//custom-class是之前声明过的
//将类的样式当作参数传递到组件里面
<myNav custom-class="color-pink"></myNav>

效果演示

在这里插入图片描述

源码:

mynav.json

{//声明为组件可将这一组文件设为自定义组件"component": true
}

myNav.wxml

//后面那个样式是留着后面演示传参导入样式的
<view class="navigationBar custom-class"><view class="navigationBarTitle title-class">自定义标题</view>
</view>

myNav.wxss

.navigationBar{background-color: cornflowerblue;height: 80rpx;/* 预留顶部位置当刘海 */padding-top:80rpx ;display: flex;justify-content: center;
}.navigationBarTitle{font-weight: bold;
}

myNav.js

Component({options:{//去除样式隔离addGlobalClass:true},//声明需要外部传参的类externalClasses:["custom-class"]
})

index.wxml

//custom-class="color-pink"是传参步骤
<myNav custom-class="color-pink"></myNav>

index.wxss

//因为外部样式权值比内部低,会被覆盖,!important用于提高权值
.navigationBar{background-color: crimson !important;
}//定义一个类并写入所需样式
//老规矩:外部传入记得用!important提高权值
.color-pink{background-color: pink !important;
}

下一篇

http://www.lryc.cn/news/289717.html

相关文章:

  • Python3进行pdf文件分割及转word
  • 深入理解TCP网络协议(1)
  • QT 中如何使用 JSON 功能?
  • C++面试:算法的执行效率和资源消耗、时间和空间复杂度分析根据实际场景,选用合适的数据结构和算法进行程序设计
  • 力扣100215-按键变更的次数
  • STM32-GPIO输出(HAL库)
  • 倒计时80天
  • PBM模型参数详解
  • 贪吃蛇/链表实现(C/C++)
  • Qlik Sense : IntervalMatch(离散匹配)
  • MySql45讲-08.事务到底是隔离的还是不隔离的?(结合MVCC视频)
  • 备战蓝桥杯----数据结构及STL应用(基础2)
  • 日常学习之:vue + django + docker + heroku 对后端项目 / 前后端整体项目进行部署
  • LangGraph:一个基于LangChain构建的AI库,用于创建具有状态、多参与者的应用程序
  • 04-Nacos-服务注册基于spring boot实现
  • iOS 闭包和Block的区别
  • 后端学习笔记——后端细碎知识点(每天更新......)
  • 二进制中1的个数
  • python+matlab text(按图的相对位置显示)
  • rust 引用/mut 的所有权
  • 油烟净化器科技改革,清新用餐生活
  • [足式机器人]Part3 机构运动学与动力学分析与建模 Ch01-1 刚体系统的运动学约束
  • 51单片机智能小车
  • 9. 嵌入式系统开发:安全性与可靠性设计模式---引言
  • 内网安全:Exchange服务
  • Flask介绍和优势
  • 喜报|「云原生数据库PolarDB」、「阿里云瑶池一站式数据管理平台」揽获“2023技术卓越奖”
  • 【动态规划】【字符串】【行程码】1531. 压缩字符串
  • 检测头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图
  • PHP语法