ページをスクロールできなくする方法にはこの記事で紹介する方法以外にCSSの Positionプロパティを利用する方法もあります。
Positionプロパティを利用する方法はこちらの記事を参照してください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function LockScroll() {
document.addEventListener("mousewheel", handleMouseWheel, { passive: false });
document.addEventListener("touchmove", handleTouchMove, { passive: false });
document.addEventListener("keydown", handleKeyDown, { passive: false });
document.body.style.overflow = "hidden";
}
function UnLockScroll() {
document.removeEventListener("mousewheel", handleMouseWheel, { passive: false });
document.removeEventListener("touchmove", handleTouchMove, { passive: false });
document.removeEventListener("keydown", handleKeyDown, { passive: false });
document.body.style.overflow = "visible";
}
function handleMouseWheel(e) {
e.preventDefault();
}
function handleTouchMove(e) {
e.preventDefault();
}
function handleKeyDown(e) {
switch (e.keyCode) {
case 0x25:
case 0x26:
case 0x27:
case 0x28:
e.preventDefault();
break;
}
}
</script>
<style>
#frame1 {
height: 120px;
border: 1px solid #ff0000;
}
#frame2 {
height: 120px;
border: 1px solid #ff6a00;
}
#frame3 {
height: 120px;
border: 1px solid #ffd800;
}
#frame4 {
height: 120px;
border: 1px solid #4cff00;
}
#frame5 {
height: 120px;
border: 1px solid #00ffff;
}
#frame6 {
height: 120px;
border: 1px solid #0094ff;
}
#frame7 {
height: 120px;
border: 1px solid #4800ff;
}
#frame8 {
height: 120px;
border: 1px solid #b200ff;
}
#frame9 {
height: 120px;
border: 1px solid #ff00dc;
}
#frame10 {
height: 120px;
border: 1px solid #000000;
}
</style>
</head>
<body>
<p><a href="javascript:LockScroll();">スクロールをロック</a></p>
<p><a href="javascript:UnLockScroll();">スクロールをアンロック</a></p>
<div id="frame1">枠1</div>
<div id="frame2">枠2</div>
<div id="frame3">枠3</div>
<div id="frame4">枠4</div>
<div id="frame5">枠5</div>
<div id="frame6">枠6</div>
<div id="frame7">枠7</div>
<div id="frame8">枠8</div>
<div id="frame9">枠9</div>
<div id="frame10">枠10</div>
</body>
</html>
function LockScroll() {
document.addEventListener("mousewheel", handleMouseWheel, { passive: false });
document.addEventListener("touchmove", handleTouchMove, { passive: false });
document.addEventListener("keydown", handleKeyDown, { passive: false });
document.body.style.overflow = "hidden";
}
prevnetDefault()
メソッドを呼び出し、デフォルトの処理をブロックします。 document.addEventListener("mousewheel", handleMouseWheel, { passive: false });
function handleMouseWheel(e) {
e.preventDefault();
}
prevnetDefault()
メソッドを呼び出し、デフォルトの処理をブロックします。 document.addEventListener("touchmove", handleTouchMove, { passive: false });
function handleTouchMove(e) {
e.preventDefault();
}
prevnetDefault()
メソッドを呼び出し、デフォルトの処理をブロックします。 document.addEventListener("keydown", handleKeyDown, { passive: false });
function handleKeyDown(e) {
switch (e.keyCode) {
case 0x25:
case 0x26:
case 0x27:
case 0x28:
e.preventDefault();
break;
}
}
document.body.style.overflow = "hidden";
function UnLockScroll() {
document.removeEventListener("mousewheel", handleMouseWheel, { passive: false });
document.removeEventListener("touchmove", handleTouchMove, { passive: false });
document.removeEventListener("keydown", handleKeyDown, { passive: false });
document.body.style.overflow = "visible";
}