通过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 相关文章推荐
JSONP 跨域共享信息
Aug 16 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
谈谈JavaScript的New关键字
Aug 26 Javascript
微信小程序之仿微信漂流瓶实例
Dec 09 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
Vue项目分环境打包的实现步骤
Apr 02 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 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
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
如何让CI框架支持service层
2014/10/29 PHP
详解php用static方法的原因
2018/09/12 PHP
java解析json方法总结
2019/05/16 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
python中kmeans聚类实现代码
2018/02/23 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
python提取log文件内容并画出图表
2019/07/08 Python
pycharm修改file type方式
2019/11/19 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
会计专业自我鉴定范文
2013/12/29 职场文书
预备党员思想汇报
2014/01/08 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
经理助理岗位职责
2014/03/05 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
剪彩仪式主持词
2014/03/19 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
消防宣传口号
2014/06/16 职场文书
秋冬农业生产标语
2014/10/09 职场文书
晚会开场白和结束语
2015/05/29 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers