移动端底部导航栏固定——兼容IOS

问题:移动端前端底部导航栏设计 兼容安卓下的各种浏览器和IOS自带的Safari,但是不兼容苹果下的 钉钉。

具体代码格式:

<body>
<!-- 头部导航栏 -->
	<div class="header">内容</div>
<!-- 内容 -->
	<div class="content">内容</div>
<!-- 底部导航栏 -->
	<div class="footer">内容</div>
</body>

css样式:

body{padding-bottom:20px;height: 100%;}
.header{
	position: relative;
	width:100%;
	height: 45px;
	background: #38adff;
}
.content{
        width:100%;
	height: 100%;
}
.footer{
       position:fixed;
	width:100%;
	left:0px;
        z-index:105;
 	bottom:0px;
}

这样写下来,在安卓的一系列浏览器和钉钉上面是正常的 。在IOS的一系列浏览器上是正常的,但是在钉钉上面,拖动的时候会导致底部导航栏也跟着拖动。这个问题困扰了我好几天,明明只是个小BUG!

在网上找了很多资料,比如动态的改变底部导航栏的top值:

<script type="text/javascript">
    $(window).scroll(function(){
   // 重点就是下面这一条语句的实现
    $("#fixnav").css({top: window.innerHeight + window.scrollY - $("#fixnav").outerHeight() });
   });
</script>

这样写,确实有效果,但是在IOS下面会出现底部导航栏闪现闪出的效果,这样写用户体验性也会不好,所以排除了。

后来换种思路,body不可拖动,只拖动内容部分,底部导航栏不可拖动,改了一下content的样式

.content{
    position: absolute;     //绝定位
    top:0px;
    width:100%;
    overflow:auto;
    height: 100%;
    overflow-y: scroll;     //纵向滑动
     -webkit-overflow-scrolling: touch;   //实现快速滚动和回弹的效果
    padding-bottom:60px;
}

  这样写在IOS下的钉钉初步可以了,但是只要苹果自带的上拉工具框出现就会导致底部导航栏再次跟着拖动。所以这个问题并未真正意义上的解决。

PS:钉钉自己的内核环境是chorme,但是我在苹果上的chorme上运行是正常的。搞不懂钉钉。

百度了一下IScroll.js可以解决IOS上面的fixed不适配问题,目前还没尝试,准备试一下。

时间: 2024-08-24 16:35:52

移动端底部导航栏固定——兼容IOS的相关文章

【AmazeUI】底部导航栏与分享按钮

手机端页面的底部导航栏,仿照安卓.IOS等Apps应用底部导航栏的设计.许许多多的移动端页面前端框架都有这个组件.AmazeUI也不例外.还提供了分享到站外的分享按钮,组件,完全不用自己写.直接提供国内主流网站的分享,没有那些传说中的facebook之流,完全不用自己改,其效果如下: 其代码如下: <!--使用HTML5开发--> <!doctype html> <html class="no-js"> <html> <head&g

基于Mint UI开发VUE项目一之环境搭建和头部底部导航栏的实现

一:简介 Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要.通过它,可以快速构建出风格统一的页面,提升开发效率.真正意义上的按需加载组件.可以只加载声明过的组件及其样式文件,无需再纠结文件体积过大.考虑到移动端的性能门槛,Mint UI 采用 CSS3 处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验.依托 Vue.js 高效的组件化方案,Mint UI 做到了轻量化.即使全部引入,压缩后的文件体积也仅有 ~30kb (JS + CSS

js滚动到指定位置导航栏固定顶部

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js滚动到指定位置导航栏固定顶部</title> <style type="text/css"> body{height: 2500px; margin: 0; padding: 0;} .banner{height: 250px; width: 100%; bac

底部导航栏使用BottomNavigationBar

1.github地址 https://github.com/zhouxu88/BottomNavigationBar 2.基本使用 2,1添加依赖 implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.5' 2.2布局中使用 <com.ashokvarma.bottomnavigation.BottomNavigationBar android:layout_width="match_parent" an

03-Flutter移动电商实战-底部导航栏制作

1.cupertino_IOS风格介绍 在Flutter里是有两种内置风格的: material风格: Material Design 是由 Google 推出的全新设计语言,这种设计语言是为手机.平板电脑.台式机和其他平台提供一致,更广泛的外观和感觉.我喜欢称它为纸墨设计.Material Design 风格是一种非常有质感的设计风格,并会提供一些默认的交互动画. cupertino风格:即 IOS 风格组件,它重现了很多经典的有 IOS 特性的交互和界面风格,让适用于 IOS 的人感觉亲切和

uni-app添加自定义底部导航栏,实现根据权限动态切换底部栏目的功能

uni-app针对底部导航栏TabBar,只提供了动态修改样式文字和图标的API,并没有提供动态修改某个栏目的跳转链接.追加或者删除某个栏目的功能. 问题阐述:实际开发的项目中的确需要判断登录账户的权限,来动态显示某两个,或者某三个栏目 如:管理用户显示[首页,管理,我的],普通用户显示[首页,我的],中间的管理页面,就得动态判断是否要追加了 解决方案:隐藏原有的tabBar,添加自定义的底部导航栏 1.思路:参照原来导航栏的写法,延用原来TabBar的样式布局,在每个栏目的首页添加自定义导航栏

实现底部导航栏

许多的App都使用底部导航栏来实现导航功能,我们可以使用RadioGroup+RadioButton的形式或者直接Button数组的方式实现,而谷歌官方提供了FragmentTabHost来方便快捷实现底部导航栏. android.support.v4.app.FragmentTabHost 主要代码: fragmentTabHost.setup(this, getSupportFragmentManager(), R.id.layout_content); for (int i = 0; i 

Android实习札记(5)---Fragment之底部导航栏的实现

Android实习札记(5)---Fragment之底部导航栏的实现 --转载请注明出处:coder-pig 在Part 4我们回顾了一下Fragment的基本概念,在本节中我们就来学习Fragment应用的简单例子吧! 就是使用Fragment来实现简单的底部导航栏,先贴下效果图: 看上去很简单,实现起来也是很简单的哈!那么接着下来就看下实现的流程图吧: 实现流程图: 看完流程图是不是有大概的思路了,那么接着就开始代码的编写吧: 代码实现: ①先写布局,布局的话很简单,一个FrameLayou

Android仿小米商城底部导航栏之二(BottomNavigationBar、ViewPager和Fragment的联动使用)

简介 在前文<Android仿小米商城底部导航栏(基于BottomNavigationBar)>我们使用BottomNavigationBar控件模仿实现了小米商城底部导航栏效果.接下来更进一步的,我们将通过BottomNavigationBar控件和ViewPager空间的联动使用来实现主界面的滑动导航. 导航是移动应用最重要的方面之一,对用户体验是良好还是糟糕起着至关重要的作用.好的导航可以让一款应用更加易用并且让用户快速上手.相反,糟糕的应用导航很容易让人讨厌,并遭到用户的抛弃.为了打造