Skip to content

Instantly share code, notes, and snippets.

@karenpayneoregon
Last active February 12, 2025 22:53
Show Gist options
  • Save karenpayneoregon/bfae61091bc9d7916b2ffd09f5453f21 to your computer and use it in GitHub Desktop.
Save karenpayneoregon/bfae61091bc9d7916b2ffd09f5453f21 to your computer and use it in GitHub Desktop.
Scrollable modal
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Bootstrap scrollable modal</title>
<link href="Lib/bootstrap/dist/css/bootstrap.css" rel="stylesheet" />
<!-- REQUIRED -->
<script src="Lib/bootstrap/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<main>
<div class="container mt-3" id="main-content">
<div class="d-flex justify-content-center">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#myModal">
Open modal
</button>
</div>
</div>
<!-- The Modal -->
<div class="modal" id="myModal" data-bs-backdrop="static">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h2 class="modal-title">Modal Heading</h2>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close dialog"></button>
</div>
<!-- Modal body -->
<div class="modal-body">
<h3>Some text to enable scrolling..</h3>
<div class="row mb-5">
<div class="col-12">
<button id="toBottom" class="btn btn-outline-dark">
<span class="me-2">Bottom</span>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-arrow-down-circle" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8.5 4.5a.5.5 0 0 0-1 0v5.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293z" />
</svg>
</button>
</div>
</div>
<!--<p>Try and resize the browser window.</p>-->
<div class="card mb-2">
<img src="Lib/images/BootThumb.png" class="card-img-top w-50 h-50" alt="..."/>
<div class="card-body bg-info-subtle">
<h4 class="card-title">Title</h4>
<p class="card-text">Try and resize the browser window.</p>
</div>
</div>
<p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</main>
<script>
const modalElement = document.getElementById('myModal');
const modalBody = modalElement.querySelector('.modal-body');
document.getElementById("toBottom").addEventListener("click", function () {
modalBody.scrollTop = modalBody.scrollHeight;
});
</script>
</body>
</html>
[Bootstrap modal](https://getbootstrap.com/docs/5.3/components/modal/)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment