移动端WebApp隐藏地址栏的方法

时间:2021-05-02

1、很多资料说,添加以下代码,可以隐藏地址栏,但我试了很多次,貌似不成功啊。

复制代码 代码如下:
<meta name="apple-mobile-web-app-capable" content="yes" />


2、我们可以通过另一种方法来隐藏地址栏。在页面加载完成之后滚动窗口,这个确实有效,唯一要注意的是页面高度必须够高,核心代码如下:

复制代码 代码如下:
<script type="text/javascript">
addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false);
function hideURLbar(){
window.scrollTo(0,1);
}
</script>


3、但是当页面高度自适应窗口(height:100%),以上方法就不适用了,我们需要采用特殊方法:

复制代码 代码如下:


$('div').css("height",window.innerHeight+100); //强制让内容超过

window.scrollTo(0, 1);

$("div").css("height",window.innerHeight); //重置成新高度

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); //如果不想让页面滑动,可以加上这段代码

4、分享一下开源项目

移动前端界面进去的时候,我们会看到地址工具条,这看起来不怎么像一个APP,那么怎么隐藏掉这个地址条,下面提供了一个比较合适的代码,支持ios和Android.

复制代码 代码如下:



(function( win ){
var doc = win.document;

// If there's a hash, or addEventListener is undefined, stop here
if(!win.navigator.standalone && !location.hash && win.addEventListener ){

//scroll to 1
win.scrollTo( 0, 1 );
var scrollTop = 1,
getScrollTop = function(){
return win.pageYOffset || doc.compatMode === "CSS1Compat" && doc.documentElement.scrollTop || doc.body.scrollTop || 0;
},

//reset to 0 on bodyready, if needed
bodycheck = setInterval(function(){
if( doc.body ){
clearInterval( bodycheck );
scrollTop = getScrollTop();
win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
}
}, 15 );

win.addEventListener( "load", function(){
setTimeout(function(){
//at load, if user hasn't scrolled more than 20 or so...
if( getScrollTop() < 20 ){
//reset to hide addr bar at onload
win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
}
}, 0);
}, false );
}
})( this );


详细请访问:https://github.com/scottjehl/Hide-Address-Bar

如果你的浏览器支持标签隐藏的话:

复制代码 代码如下:
<meta name="apple-mobile-web-app-capable" content="yes" />

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章