微信小程序自定义头部导航栏(组件化)
本文实例为大家分享了微信小程序自定义头部导航栏的具体代码,供大家参考,具体内容如下
效果图
支持导航栏自定义背景颜色、背景图片支持返回文字自定义支持导航标题自定义
首先在app.jsonwindow配置项添加
"window":{ "navigationStyle":"custom" }
自定义头部导航栏代码
wxml部分
wxss部分
.cu-custom{display:block;position:relative;} .cu-custom.cu-bar{display:flex;align-items:center;justify-content:space-between;position:fixed;width:100%;top:0;min-height:100rpx;padding-right:220rpx;box-shadow:0rpx0rpx0rpx;z-index:9999;background-color:#fff;} .cu-custom.cu-bar.border-custom{position:relative;background:rgba(255,255,255,0.5);border-radius:1000rpx;height:30px;} .cu-custom.cu-bar.action{display:flex;align-items:center;height:100%;justify-content:center;max-width:100%;} .cu-custom.cu-bar.action:first-child{margin-left:30rpx;font-size:30rpx;} .cu-custom.cu-bar.border-customtext{display:block;flex:1;margin:auto!important;text-align:center;font-size:34rpx;} .cu-bar.content{width:calc(100%-440rpx);position:absolute;text-align:center;left:0;right:0;bottom:0;top:0;margin:auto;height:60rpx;font-size:32rpx;line-height:60rpx;cursor:none;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}
js部分
constApp=getApp(); Component({ options:{ addGlobalClass:true, multipleSlots:true }, properties:{ isBack:{ type:[Boolean,String], default:false }, bgColor:{//类名 type:String, default:'' }, bgImage:{//仅支持网络地址 type:String, default:'' }, }, data:{ StatusBar:App.GlobalData.StatusBar, CustomBar:App.GlobalData.CustomBar, Custom:App.GlobalData.Custom, isShare:App.GlobalData.share }, methods:{ BackPage(){ wx.navigateBack({ delta:1 }); }, toHome(){ wx.reLaunch({ url:'/pages/index/index', }) } } })
app.js判断是否分享
App({ GlobalData:{ share:false, StatusBar:0, Custom:0, CustomBar:0 }, onLaunch:function(){ letself=this letsystemInfo=wx.getSystemInfoSync() self.GlobalData.StatusBar=systemInfo.statusBarHeight; if(wx.getMenuButtonBoundingClientRect){ letcustom=wx.getMenuButtonBoundingClientRect(); self.GlobalData.Custom=custom; self.GlobalData.CustomBar=custom.bottom+custom.top-systemInfo.statusBarHeight; } })
因为组件css里不支持伪类元素所以写在app.css
/*自定义头部导航栏图标*/ .cu-custom[class*="icon-"]{font-family:"iconfont"!important;font-size:inherit;font-style:normal;} @font-face{font-family:"iconfont"; src:url('iconfont.eot?t=1555316650045');/*IE9*/ src:url('iconfont.eot?t=1555316650045#iefix')format('embedded-opentype'),/*IE6-IE8*/ url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAANcAAsAAAAAB0wAAAMPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgqCLIIKATYCJAMMCwgABCAFhG0HPxtZBsiemjyKBSigJhHwFACGePCEutd3On3HX0oBgBzCrQwwpxvBCDR2tgVzWmSLL1RJEo0V68AF6Bsg4wdCz0+7oQxuhxBSCRhLPW1+Ay6n/1+JzwPKbaxNY9OcFGCCAY21KZAHLpAEvWHsApdwHAI4amtJBg5+es1UsFjjBJDsDFXIVHImbEu6ECIENUtthuwgQWg2mhJge/h9+UP7QjAkFGvq2LvImf37vq6IVzDTJxDP5wDYKlCgJbAgs2tdU+XjaEuK0xQFPR8CLIKZKxDHhCJdEdh/eGAQkAArNRWApihm4DtXlKqHkrtOVQCCOGmmDDksXcWxtJFWjZOLo+97m+5UXPh55OpD782Kq9UuPmzkdeV+7zfvxfjzj1scPi7qNz+ucfhU3wPOmRUvOjpd+cy5TU+qGnfuXXVF21Tfd7hK2s/5zWcrLfo6uLj0lMky3G7tAf3+Nh96cqTdkZKAvt/mtErvN3SVSr9JXhz7eKT/52f5r37kwxXngld/KlVqW7XKmv39DxVVnratPbW3o0HNScOZw0H1BrtuNR/Q7DBquG5Ukw5bDkb76+2PNh8q15yu+yL1wrlpU887+4VpH7/nSzFXBoi/7WDNJAO6xrz4+7/BNMr8n9Pu+T/0FoAPzb0UyvrHQgww8b+umB4AdjCXWhG1QIvG9vWjTBg5yQAOB8TQV9638ZpKeioIIZVSGFKoBSWkIWlZLZHA0xEBIX3gaGHIak8FhfKITQLNrQUQyroOQ2meQynrNWlZX5Ggsn8IKJvCMbkKW3oal+EGFEIIINP8lDIkdhTHGtSi9GeooSV4WWnIfofn6wFq17ptMXELB94cM4oidVEcKBR5bNNgcBosiynfYwNSMEkPguuyTZuo7k2TBWxnagzgAUEAZGS+FMkgYQ7Fbx+olT7/DFQhi8BrqasJvgOPT++ctNNa2x7krcrpVXcvrxSJqBaKBRQk4mE2Mhg4wLKjjOTXDzKAJDCRPiJ8tdQGtYr6qibra+wPKGRNWHeqGFGx+KJ0DlPY7MEpR/McLdTnAAA=')format('woff2'), url('iconfont.woff?t=1555316650045')format('woff'), url('iconfont.ttf?t=1555316650045')format('truetype'),/*chrome,firefox,opera,Safari,Android,iOS4.2+*/ url('iconfont.svg?t=1555316650045#iconfont')format('svg');/*iOS4.1-*/ } .iconfont{font-family:"iconfont"!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;} .icon-homefill:before{content:"\e6fc";} .icon-back:before{content:"\e67a";} .cu-custom.cu-bar.border-custom::after{content:"";width:200%;height:200%;position:absolute;top:0;left:0;border-radius:inherit;transform:scale(0.5);transform-origin:00;pointer-events:none;box-sizing:border-box;border:1rpxsolidrgba(0,0,0,0.3);opacity:0.5;} .cu-custom.cu-bar.border-custom::before{content:"";width:1rpx;height:110%;position:absolute;top:22.5%;left:0;right:0;margin:auto;transform:scale(0.5);transform-origin:00;pointer-events:none;box-sizing:border-box;opacity:0.6;background-color:rgba(0,0,0,0.3);}
开发工具显示不正常主要以真机显示为主具体可根据自己的需求修改
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。