通过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 相关文章推荐
IE下使用cloneNode注意事项分享
Nov 22 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
Dec 14 Javascript
小程序分享模块超级详解(推荐)
Apr 10 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
vue-resourc发起异步请求的方法
Feb 11 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
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
如何实现JS函数的重载
2006/09/22 Javascript
js传值 判断
2006/10/26 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python解决鸡兔同笼问题的方法
2014/12/20 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python文件排序的方法总结
2020/09/13 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
大二自我鉴定
2014/01/31 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
十佳护士获奖感言
2014/02/18 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
活动总结新闻稿
2014/08/30 职场文书
心灵点滴观后感
2015/06/02 职场文书