微信小程序自定义胶囊样式


Posted in Javascript onDecember 27, 2020

本文实例为大家分享了微信小程序自定义左上角胶囊样式的具体代码,供大家参考,具体内容如下

1、 将app.js 中的 window 对象属性navigationStyle 改为自定义

"window": {
 "navigationStyle": "custom"
 },

改完之后的效果:

微信小程序自定义胶囊样式

2、获取 右上角胶囊的定位信息 设置

微信小程序自定义胶囊样式

调用 wx.getMenuButtonBoundingClientRect() 函数得到右上角胶囊定位信息

微信小程序自定义胶囊样式
微信小程序自定义胶囊样式 

所需要的 属性有 : top,height属性,用于计算自定义左上角胶囊定位的位置

拿到 右上角胶囊的 top和height 相加得到 屏幕导航栏的固定高度:

微信小程序自定义胶囊样式

在 data函数中声明一个导航栏高度属性,和一个 胶囊具体定位的top属性:

赋值导航栏的高度 数据:

// pages/testQ/index.js
Page({

 /**
 * 页面的初始数据
 */
 data: {
 navHeight:0,
 capsuleTop: 0

 },

 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {

 },

 /**
 * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {

 },

 /**
 * 生命周期函数--监听页面显示
 */
 onShow: function () {
 let dwObj = wx.getMenuButtonBoundingClientRect()
 let navHeight_ = (dwObj.top + dwObj.height)
 let capsuleTop_ = dwObj.top
 this.setData(
 {
 navHeight: navHeight_,
 capsuleTop:capsuleTop_

 }
 )
 },

 /**
 * 生命周期函数--监听页面隐藏
 */
 onHide: function () {

 },

 /**
 * 生命周期函数--监听页面卸载
 */
 onUnload: function () {

 },

 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {

 },

 /**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function () {

 },

 /**
 * 用户点击右上角分享
 */
 onShareAppMessage: function () {

 }
})

在 wxml 中定义 导航栏:

<!--pages/testQ/index.wxml-->

<!-- 左上角胶囊开始-->
<!--left-capsule 是最上层,可以设置背景-->
<view class="left-capsule">
 <!--left-capsule-nav 是用于定位左上角的位置-->
 <view class="left-capsule-nav" style="height:{{navHeight}}px;">
 <!--left-capsule-nav-content 是 胶囊主要内容-->
 <view style="position:relative;top:{{capsuleTop}}px;" class="left-capsule-nav-content"> 
 <!--back 胶囊 返回按钮-->
 <view class="back">
 <!-- 我这个图标引入的是 vant库的icon,如果不是使用vant的话 得自定义一个icon-->
 <van-icon name="arrow-left" color="white" size="20"/>
 </view> 
 <!-- line 胶囊 中间线条-->
 <view class="line"></view> 
 <!-- home 胶囊 返回首页按钮-->
 <view class="home">
 <!-- 我这个图标引入的是 vant库的icon,如果不是使用vant的话 得自定义一个icon-->
 <van-icon name="wap-home-o" color="white" size="20"/>
 </view> 
 </view>
 </view>
 <!-- 以上 可以 封装成自定义组件,在引入,这个地方是 胶囊外的内容-->
 <view class="main-content" style="top:{{navHeight}}px;">
 我是测试左上角胶囊
</view>
<!-- 左上角胶囊结束-->
</view>

wxss内容:

/* 导航栏css开始*/
.left-capsule{
 width: 100vh;
 height: 100vh;
 background-color: black;
}
.left-capsule .left-capsule-nav{
 width: 100%;
 position: fixed;
 z-index: 2;
}
.left-capsule-nav .left-capsule-nav-content{
 width: 85px;
 text-align: center;
 border-radius: 50px;
 position: relative;
 top: 26px;
 left: 20px;
 box-shadow:0px 0px 1px 0.2px white;
 background-color: #1d19195c;
 height: 30px;
}
.left-capsule-nav-content view{
 display: inline;
 width: 35px;
 position: relative;
}
.left-capsule-nav-content .back{
 top: 4px;left: -5px;
}
.left-capsule-nav-content .line{
 top: 3px;
 width: 1px;
 border-left: solid #cac3c3 thin;
 height: 17px;
 display: inline-block;
}
.left-capsule-nav-content .home{
 top: 4px;
}
/* 导航栏css结束*/
/* 内容*/
.main-content{
 background-color: red;
 position: absolute;
 width: 100%;
 z-index: 1;
 
}

效果图:

微信小程序自定义胶囊样式

如果觉得红色地方太挨得进的话 top 在加大一点

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 可排列的表实现代码
Nov 13 Javascript
将函数的实际参数转换成数组的方法
Jan 25 Javascript
js 代码优化点滴记录
Feb 19 Javascript
JS数组的遍历方式for循环与for...in
Jul 31 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
js实现打地鼠小游戏
Feb 13 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
jquery插件实现代码雨特效
Apr 24 jQuery
JS实现鼠标移动拖尾
Dec 27 #Javascript
JavaScript实现滚动加载更多
Dec 27 #Javascript
jQuery实现简单轮播图效果
Dec 27 #jQuery
JavaScript实现瀑布流布局的3种方式
Dec 27 #Javascript
Vue实现省市区三级联动
Dec 27 #Vue.js
JavaScript实现通讯录功能
Dec 27 #Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 #Vue.js
You might like
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
utf8的编码算法 转载
2006/12/27 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
js date 格式化
2017/02/15 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
vue获取input输入值的问题解决办法
2017/10/17 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python实现时钟显示效果思路详解
2018/04/11 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
python多进程并发demo实例解析
2019/12/13 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
树莓派升级python的具体步骤
2020/07/05 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
奠基仪式主持词
2014/03/20 职场文书
环保倡议书
2014/04/14 职场文书
投标承诺函范文
2015/01/21 职场文书
春晚观后感
2015/06/11 职场文书