<div id="wrap">

	<!-- section -->
	<div class="section">
		<div class="center">

			<div id="buttons">
				<div class="button button--1">
					<div class="button__content"><span>Inside (absolute)</span></div>

					<div class="modal modal--inside">
						<span>Modal window</span>
					</div>

				</div>

				<div class="button button--2">
					<div class="button__content"><span>Outside (fixed by script)</span></div>
				</div>

				<div class="modal modal--outside">
					<span>Modal window</span>
				</div>
			</div>

		</div>
	</div>
	<!--/section -->

</div>
html,
body {
	margin: 0;
	padding: 0;
	font-family: sans-serif;
	font-size: 16px;
	line-height: 1.4;
	color: #555;
	background: #fff;
}

* {
	box-sizing: border-box;
}

#wrap {
	position: relative;
}

.section {
	padding: 40px;
}

.center {
	width: 100%;
	max-width: 980px;
	margin: auto;
}

#buttons {
	display: flex;
	justify-content: flex-end;
	margin: -20px;
}

.button {
	position: relative;
	margin: 20px;
	user-select: none;
	
	&__content {
		background: #27C4A2;
		color: #fff;
		font-weight: 700;
		font-size: 20px;
		padding: 20px 30px;
		cursor: pointer;
		text-align: center;
	}
}

.modal {
	min-width: 400px;
	margin-top: 5px;
	padding: 40px;
	background: #fff;
	box-shadow: inset 0 0 0 1px #ddd, 0 5px 20px fade(#000, 10%);
	display: none;
	
	&--inside {
		position: absolute;
		z-index: 1;
		top: 100%;
		right: 0;
	}
	
	&--outside {
		position: fixed;
		z-index: 999;
	}
	
	&--show {
		display: block;
	}
}
View Compiled
function fixModalOutside() {
	var $button = $('.button--2'),
		topPos = $button.offset().top + $button.height() - $(window).scrollTop(),
		ritPos = $(window).width() - ($button.offset().left + $button.width() - $(window).scrollLeft());
	
	$('.modal--outside').css({
		top: topPos,
		right: ritPos
	});
}

$(window).on('load resize scroll', function() {
	fixModalOutside();
});

$(function() {	
	$('.button').click(function() {
		var $button = $(this);
		
		if($button.hasClass('button--1')) {
			$('.modal--inside').toggleClass('modal--show');
		} else {
			$('.modal--outside').toggleClass('modal--show');
			fixModalOutside();
		}
	});
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js