通过JS自动隐藏手机浏览器的地址栏实现原理与代码


Posted in Javascript onJanuary 02, 2013

大家通过手机自带浏览器打开百度、淘宝,在首页加载完毕后,会自动隐藏页面上方的地址栏,加之这些网站针对手机浏览器做了优化,乍看之下,还真难区分这是WEB APP还是Native App,如下左侧图片为通过safari打开淘宝网的首页,要不是因为底下的浏览器工具栏,还真像Native App。实际上它是有地址的,向下拖动就会看到地址栏,如下右侧图片。

通过JS自动隐藏手机浏览器的地址栏实现原理与代码通过JS自动隐藏手机浏览器的地址栏实现原理与代码

如何才能实现将浏览器地址栏隐藏呢?百度一下,有很多资料,很简单,主要利用window.scrollTo()方法,将当前页面在屏幕上向上滚动,造成地址栏超出视野范围,如下:

<script> 
window.onload=function(){ 
setTimeout(function() { 
window.scrollTo(0, 1) 
}, 0); 
}; 
</script>

但若你做一个简单页面,比如只有一句话,加上如上脚本,你会悲摧的发现,地址栏就是不自动隐藏;难道window.scrollTo()方法在这个浏览器不生效?

但是若你网页内容比较多,超过屏幕高度时,却会自动隐藏地址栏;

如何解决在内容较少时,同样隐藏地址栏呢?需在滚动之前程序动态设置一下body的高度,增加如下代码:

if(document.documentElement.scrollHeight <= document.documentElement.clientHeight) { 
bodyTag = document.getElementsByTagName('body')[0]; 
bodyTag.style.height = document.documentElement.clientWidth / screen.width * screen.height + 'px'; 
}

如下为一个页面示例(默认隐藏地址栏),右图为下拉后看到地址栏的截图:

通过JS自动隐藏手机浏览器的地址栏实现原理与代码通过JS自动隐藏手机浏览器的地址栏实现原理与代码

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<meta name="viewport" content="width=device-width, initial-scale=1,"> 
<title>我是个网页,但不显示滚动条</title> 
<script> 
window.onload=function(){ 
if(document.documentElement.scrollHeight <= document.documentElement.clientHeight) { 
bodyTag = document.getElementsByTagName('body')[0]; 
bodyTag.style.height = document.documentElement.clientWidth / screen.width * screen.height + 'px'; 
} 
setTimeout(function() { 
window.scrollTo(0, 1) 
}, 0); 
}; 
</script> 
<style> 
/*输入框圆角显示*/ 
input { 
background:#fff; border: 1px solid #080; 
padding:5px; 
-webkit-border-radius:5px; 
} 
/* button 
---------------------------------------------- */ 
.button { 
display: inline-block; 
zoom: 1; /* zoom and *display = ie7 hack for display:inline-block */ 
*display: inline; 
vertical-align: baseline; 
margin: 0 2px; 
outline: none; 
cursor: pointer; 
text-align: center; 
text-decoration: none; 
font: 14px/100% Arial, Helvetica, sans-serif; 
padding: .5em 2em .55em; 
text-shadow: 0 1px 1px rgba(0,0,0,.3); 
-webkit-border-radius: .5em; 
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); 
} /* green */ 
.green { 
color: #e8f0de; 
border: solid 1px #538312; 
background: #64991e; 
background: -webkit-gradient(linear, left top, left bottom, from(#7db72f), to(#4e7d0e)); 
} 
</style> 
</head> 
<body style="background: #ededed;"> 
<div style="padding-top:40%;padding-left:20%"> 
帐号:<input type="text"><br/> 
密码:<input type="text"><br/> 
<div> 
<div style="padding-top:5%;padding-left:23%"><input type="button" class="button green" value="登录"></div> 
</body> 
</html>
Javascript 相关文章推荐
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
js 页面元素的几个用法总结
Nov 18 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
JS实现简易刻度时钟示例代码
Mar 11 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
解决node-sass偶尔安装失败的方法小结
Dec 05 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 Javascript
JS实现电脑虚拟键盘打字测试
Jun 24 Javascript
js 回车提交表单两种实现方法
Dec 31 #Javascript
event.currentTarget与event.target的区别介绍
Dec 31 #Javascript
jQuery $.data()方法使用注意细节
Dec 31 #Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 #Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
Dec 30 #Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
Dec 30 #Javascript
javascript中的缓动效果实现程序
Dec 29 #Javascript
You might like
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
Python读取Excel的方法实例分析
2015/07/11 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
倡议书格式
2014/08/30 职场文书
软环境建设心得体会
2014/09/09 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
超市工作总结范文2014
2014/12/19 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
Python源码解析之List
2021/05/21 Python
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android