通过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 相关文章推荐
AngularJS表单编辑提交功能实例
Feb 13 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
jquery处理页面弹出层查询数据等待操作实例
Mar 25 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
Jun 23 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 Javascript
Vue键盘事件用法总结
Apr 18 Javascript
详解使用webpack打包编写一个vue-toast插件
Nov 08 Javascript
vue 检测用户上传图片宽高的方法
Feb 06 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
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
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
yii数据库的查询方法
2015/12/28 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Javascript 面向对象特性
2009/12/28 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
vue中关闭eslint的方法分析
2018/08/04 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
分享vim python缩进等一些配置
2018/07/02 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
在pycharm中实现删除bookmark
2020/02/14 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
家长评语大全
2014/01/22 职场文书
商场端午节活动方案
2014/01/29 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
大学生见习报告范文
2014/11/03 职场文书
检讨书格式
2015/01/23 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python