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


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 相关文章推荐
js获取url参数的使用扩展实例
Dec 29 Javascript
浅析Cookie中的Path与domain
Dec 18 Javascript
深入理解Javascript中this的作用域
Aug 12 Javascript
javascript实现汉字转拼音代码分享
Apr 20 Javascript
js实现搜索框关键字智能匹配代码
Mar 26 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
Javascript的this用法
Jan 16 Javascript
基于Bootstrap table组件实现多层表头的实例代码
Sep 07 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
Nov 12 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 Javascript
微信小程序实现点击生成随机验证码
Sep 09 Javascript
JavaScript 原型与原型链详情
Nov 02 Javascript
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 图片文件上传实现代码
2010/12/29 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
深究AngularJS之ui-router详解
2017/06/13 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
Python中的闭包详细介绍和实例
2014/11/21 Python
Python自动连接ssh的方法
2015/03/07 Python
python类继承用法实例分析
2015/05/27 Python
python绘制条形图方法代码详解
2017/12/19 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
计算机专业自荐信
2013/10/14 职场文书
大学毕业生简单自荐信
2013/11/05 职场文书
教师评优事迹材料
2014/01/10 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
公司介绍信范文
2015/01/31 职场文书
党支部审查意见
2015/06/02 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
新教师教学工作总结
2015/08/12 职场文书