Это «хакерское» решение, как я описал в своем комментарии выше. Вы можете увидеть это в действии в этом фрагменте кода .
РЕДАКТИРОВАТЬ : Я обновил код с помощью настраиваемой полосы прокрутки с фиксированной шириной. Использование CSS Cal c для учета фиксированной ширины полосы прокрутки и ширины адаптивного элемента.
jQuery ->
$(document).ready(function() {
if ($(document).scrollTop() == 0) {
$("body").addClass("up top");
} else if ($(window).scrollTop() + $(window).height() == $(document).height()) {
$("body").addClass("down bottom");
}
$(window).scroll(function() {
if ($(document).scrollTop() > 0) {
$("body").removeClass("up top");
} else {
$("body").addClass("up top");
}
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
$("body").addClass("down bottom");
} else {
$("body").removeClass("down bottom");
}
});
});
css ->
body.scrollbar::-webkit-scrollbar {
width: 17px;
background-color: rgba(240, 240, 240);
}
body.scrollbar::-webkit-scrollbar-thumb {
background-color: #c1c1c1;
border-left: 2px solid transparent;
border-right: 2px solid transparent;
background-clip: content-box;
}
body.scrollbar::-webkit-scrollbar-thumb:hover {
background-color: #a3a3a3;
}
body.scrollbar::-webkit-scrollbar-thumb:active {
background-color: #505050;
}
body.scrollbar::-webkit-scrollbar-button:single-button {
display: block;
height: 17px;
}
/* Up */
body.scrollbar::-webkit-scrollbar-button:single-button:vertical:decrement {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowup.jpg);
background-size: cover;
border: none;
opacity: 1;
}
body.up::-webkit-scrollbar-button:single-button:vertical:decrement {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowupup.jpg);
background-size: cover;
border: none;
opacity: 1;
}
body.scrollbar:not(.top)::-webkit-scrollbar-button:single-button:vertical:decrement:hover {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowuphov.jpg);
}
/* Down */
body.scrollbar::-webkit-scrollbar-button:single-button:vertical:increment {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowdown.jpg);
background-size: cover;
border: none;
opacity: 1;
}
body.down::-webkit-scrollbar-button:single-button:vertical:increment {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowdowndown.jpg);
background-size: cover;
border: none;
opacity: 1;
}
body.scrollbar:not(.bottom)::-webkit-scrollbar-button:vertical:single-button:increment:hover {
background-image: url(https://www.golden-painting.com/styles/images/scrollarrowdownhov.jpg);
}
.fixed-right {
position: fixed;
bottom: 0;
right: 17px;
width: calc(83.333333% - 17px);
background: white;
}
.footer-spacer {
height: 74px;
}
@media only screen and (max-width: 991px) {
.fixed-right {
width: calc(100% - 17px);
}
}
html ->
<body class="scrollbar up">
<div class="container-fluid d-flex flex-column vh-100">
<nav class="navbar navbar-light bg-light navbar-expand-lg px-0">
<a class="navbar-brand" href="#">App</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar_links" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar_links">
<ul class="navbar-nav">
<li class="nav-item"><a href="#" class="nav-link">Home</a></li>
<li class="nav-item"><a href="#" class="nav-link">Link</a></li>
<li class="nav-item"><a href="#" class="nav-link">Link</a></li>
<li class="nav-item"><a href="#" class="nav-link">More</a></li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a href="#" class="nav-link">Options</a></li>
</ul>
</div>
</nav>
<div class="row flex-grow-1 overflow-hidden">
<div class="col-2 mh-100 overflow-auto py-2 d-none d-lg-block">
<h6>Sidebar</h6>
<ul class="nav flex-column bg-info rounded">
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" href="#">Link</a>
</li>
</ul>
</div>
<div class="col mh-100 scrollbar overflow-auto">
<div class="row">
<div class="col">
<h3>Body content</h3>
</div>
</div>
<div class="row flex-grow-1">
<div class="col mh-100 py-2">
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<p>Ethical Kickstarter PBR asymmetrical lo-fi. Dreamcatcher street art Carles, stumptown gluten-free Kickstarter artisan Wes Anderson wolf pug. Godard sustainable you probably haven't heard of them, vegan farm-to-table Williamsburg slow-carb readymade disrupt deep v. Meggings seitan Wes Anderson semiotics, cliche American Apparel whatever. Helvetica cray plaid, vegan brunch Banksy leggings +1 direct trade. Wayfarers codeply PBR selfies. Banh mi McSweeney's Shoreditch selfies, forage fingerstache food truck occupy YOLO Pitchfork fixie iPhone fanny pack art party Portland.</p>
<div class="footer-spacer"></div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-10 offset-lg-2 fixed-right message-box py-2">
<div class="input-group ">
<input type="text" class="form-control" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button" id="button-addon1">Send</button>
</div>
</div>
</div>
</div>
</div>
</body>