透明导航 html,导航栏(Nav) 全透明效果的一种另类实现

首先,我们看看不经过任何处理的Nav层级结构:

aed6ddd9908c

Nav层级结构

其中需要注意是:UIImageView是导航栏下面的那条线。有时候我们会发现Nav有一层蒙版,其实都是UIVisualEffectView在作怪。

主流实现方案

给nav设置一张空图片便可达到导航栏全透明效果。

//设置导航栏背景图片为一个空的image,这样就透明了

[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];

//去掉透明后导航栏下边的黑边

[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];

层级结构:

aed6ddd9908c

层级结构

我们可以看出,在设置了空图片之后,UIVisualEffectView没有加入进来,取而代之的是我们设置的空图片

另类实现方案

直接将UIVisualEffectView隐藏,让蒙版消失。

[self.navigationController.navigationBar.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

if([obj isMemberOfClass:NSClassFromString(@"_UIBarBackground")]){

[obj.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

if([obj isMemberOfClass:NSClassFromString(@"UIVisualEffectView")]||[obj isMemberOfClass:NSClassFromString(@"UIImageView")]){

obj.hidden = YES;

}

}];

}

}];

层级结构:

aed6ddd9908c

层级结构

值得注意的是:如果直接将UIVisualEffectView隐藏虽能达到全透明效果,但随之而来的负面影响是 在设置barTintColor会失效,因为barTintColor添加的图层也是在UIVisualEffectView上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用HTML和CSS来创建一个顶部半透明导航。以下是一个简单的示例: ```html <!DOCTYPE html> <html> <head> <style> /* 导航样式 */ .navbar { background-color: rgba(0, 0, 0, 0.5); /* 设置半透明背景色 */ padding: 10px; position: fixed; top: 0; width: 100%; } /* 导航链接样式 */ .navbar a { color: white; text-decoration: none; margin-right: 10px; } </style> </head> <body> <div class="navbar"> <a href="#">首页</a> <a href="#">关于我们</a> <a href="#">产品</a> <a href="#">联系我们</a> </div> <div style="margin-top: 60px;"> <!-- 在这里添加页面内容 --> <h1>欢迎访问我们的网站</h1> <p>这是一个顶部半透明导航的示例。</p> </div> </body> </html> ``` 在上面的示例中,我们创建了一个具有半透明背景色的导航。通过使用`rgba()`函数,我们可以在设置背景颜色时指定alpha通道值来实现透明度。在这个例子中,我们设置了黑色背景色,并将alpha通道值设置为0.5,即50%的不透明度。 导航使用`position: fixed;`来固定在页面的顶部,通过`top: 0;`来保证它在页面顶部对齐。我们还设置了`width: 100%;`来确保导航占据整个页面宽度。 导航中的链接使用白色文字颜色,并去除了下划线。`margin-right`属性用于为链接之间添加一些间距。 在导航下方,您可以添加其他页面内容。在这个示例中,我们简单地添加了一个标题和一段文字。 您可以根据需要修改导航和链接的样式,以及添加更多的链接或其他元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值