Position Sticky vom bottom aus
Hallo zusammen,
ich habe eine Sidebar, welche ich Scrollen lassen möchte.
Hierzu habe ich folgenden CodePen erstellt: https://codepen.io/JohnHSmith/pen/vYJXELz
Nun, mit dem sticky-element auf "top: 0" funktioniert das hervorragend.
Ich möchte jedoch, dass die Sidebar erst sticken bleibt wenn der untere Rand am Rand des Viewports gerät - also genau umgekehrt wie es bei top ist.
Mit bottom funktioniert das leider nicht.
Kann mir hier jemand einen Grund nennen oder sagen wie ich das ohne JS machen kann, da der Scroll-Eventhandler sehr unperformant ist?
Lösungs Vorschlag von AmdreasB
Kommentar abgeben zu diesen Beitrag/Code ?Dann hier klicken
Der hier verwendete Code
<html>
<head>
<style>
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
.site {
display: grid;
gap: 2rem;
grid-template-columns: 1fr minmax(180px, 30%);
max-width: 1000px;
width: 80%;
margin: auto;
}
.sticky {
--optional-bottom-offset: 2rem;
position: sticky;
top: calc(100vh - var(--height-of-the-aside-element, 100%) - var(--optional-bottom-offset));
}
</style>
</head>
<body>
<div class="site">