由于代码在这里不起作用,您需要查看Codepen。
我用滚动制作了一个块,里面是一个子块。当您按下缩放按钮时,浏览器中的全屏模式会打开,但如果块不适合屏幕(例如,从手机中,当我们的屏幕小于块时),滚动将停止工作。
$(".zoom").click(function() {
var conf = $(this).attr("data-status");
fullScreen(conf)
});
function fullScreen(conf) {
var docelem = $("#game").get(0);
if (conf == "true") {
if (docelem.requestFullscreen) {
docelem.requestFullscreen();
} else if (docelem.mozRequestFullScreen) {
docelem.mozRequestFullScreen();
} else if (docelem.webkitRequestFullScreen) {
docelem.webkitRequestFullScreen();
} else if (docelem.msRequestFullscreen) {
docelem.msRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
$("#game").get(0).addEventListener("webkitfullscreenchange", onfullscreenchange);
$("#game").get(0).addEventListener("mozfullscreenchange", onfullscreenchange);
$("#game").get(0).addEventListener("fullscreenchange", onfullscreenchange);
function onfullscreenchange() {
var docelem = $("#game").get(0);
var conf = $(".zoom").attr("data-status");
if (conf == "true") {
if (docelem.requestFullscreen) {
$(".zoom").attr("data-status", "false");
} else if (docelem.mozRequestFullScreen) {
$(".zoom").attr("data-status", "false");
} else if (docelem.webkitRequestFullScreen) {
$(".zoom").attr("data-status", "false");
} else if (docelem.msRequestFullscreen) {
$(".zoom").attr("data-status", "false");
}
} else {
if (document.exitFullscreen) {
$(".zoom").attr("data-status", "true");
} else if (document.webkitExitFullscreen) {
$(".zoom").attr("data-status", "true");
} else if (document.mozCancelFullScreen) {
$(".zoom").attr("data-status", "true");
} else if (document.msExitFullscreen) {
$(".zoom").attr("data-status", "true");
}
}
}
#game {
position: relative;
margin: 0 auto;
left: 0;
top: 0;
overflow: auto;
z-index: 5;
background: url(https://americanlibrariesmagazine.org/wp-content/uploads/2016/10/01caldecat.jpg);
height: 500px;
width: 500px;
}
.right-block {
overflow: auto;
width: 300px;
height: 300px;
margin: 30px auto;
position: relative;
}
.zoom {
margin: 5px;
position: fixed;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="right-block">
<section id="game">
<input type="button" class="zoom" value="Zoom" data-status="true">
</section>
</div>

在我看来,它应该像这样工作 - CodePen(好吧,也许你仍然可以玩弄元素的位置):