Javascript 如何在移动浏览器中更改方向时隐藏浏览器地址栏?
我在一个网站上嵌入了一段视频,与youtube应用程序在横向模式下全屏显示的行为类似,我想用javascript实现这一点。我知道,出于安全原因,如果不单击按钮,您就不能使用全屏api,您也不能强制隐藏地址栏,但是否有任何解决方法 我发现了这个,并试图在方向改变时启动scrolldown功能,但没有成功。我还将变量更改为较高的超时和较低的位置,并尝试了另一个滚动功能:Javascript 如何在移动浏览器中更改方向时隐藏浏览器地址栏?,javascript,css,video,fullscreen,landscape,Javascript,Css,Video,Fullscreen,Landscape,我在一个网站上嵌入了一段视频,与youtube应用程序在横向模式下全屏显示的行为类似,我想用javascript实现这一点。我知道,出于安全原因,如果不单击按钮,您就不能使用全屏api,您也不能强制隐藏地址栏,但是否有任何解决方法 我发现了这个,并试图在方向改变时启动scrolldown功能,但没有成功。我还将变量更改为较高的超时和较低的位置,并尝试了另一个滚动功能: $('html, body').animate({scrollTop: 100}, 100); 还是没有效果 代码如下: Ja
$('html, body').animate({scrollTop: 100}, 100);
还是没有效果
代码如下:
Javascript方向更改功能:
updateOrientation: function() {
orientation = $(window).width() / $(window ).height() < 1 ? 'portrait' : 'landscape';
var device_width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
device_height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
new_width,
new_height;
if(orientation === 'landscape'){
new_width = device_width;
new_height = device_height;
if($('#videoPlayer').length > 0 && $(window).scrollTop() < 50){
$('html, body').animate({scrollTop: 100}, 100); //this should hide the address bar
}
}else{
//code when switching back to portrait
...
}
$('#videoPlayer').css({
'width': new_width,
'height': new_height
});
}
@media screen and (orientation:landscape){
article #videoPlayer{
position: fixed;
top: 0;
left: 0;
width: 100vw;
height:100vh;
}
article #videoPlayer{
background-color: #000;
}
video {
object-fit: contain;
}
body.player_initialized #sticky_navigation{
display: none;
}
}
我检查了几个Stackoverflow条目,但没有找到有效的解决方案。有人知道这个问题的答案或者有什么提示吗
编辑:
滚动解决方案似乎适用于移动IOS Safari,但不适用于移动Chrome。有一个屏幕定向API和一个全屏API,可以协同工作。Safari不支持它,但在大多数Android浏览器中都可以使用:
if('orientation' in screen){
window.screen.orientation.onchange = function() {
if (this.type.startsWith('landscape') && document.querySelector('#element').webkitRequestFullScreen) {
document.querySelector('#element').webkitRequestFullscreen();
} else {
if(document.webkitCancelFullScreen){
document.webkitExitFullscreen();
}
}
}
}
有一个屏幕定向API和一个全屏API,可以协同工作。Safari不支持它,但在大多数Android浏览器中都可以使用:
if('orientation' in screen){
window.screen.orientation.onchange = function() {
if (this.type.startsWith('landscape') && document.querySelector('#element').webkitRequestFullScreen) {
document.querySelector('#element').webkitRequestFullscreen();
} else {
if(document.webkitCancelFullScreen){
document.webkitExitFullscreen();
}
}
}
}