![](/img/trans.png)
[英]CSS position: sticky behaves differently on scroll up and scroll down
[英]Sidebar to scroll down/up as user scroll down/up the browser window without using position: sticky and fixed?
我讓他的工作結合了相對定位和固定定位。 position:relative當用戶滾動小於 250px 並且如果用戶滾動大於 250px 位置屬性更改為固定 top: 150px不提供 right/left 屬性。 解決方案的關鍵是不提供 right/left 屬性,通過保持側邊欄相對於其自身初始位置的水平位置,導致側邊欄的水平位置與放大/縮小時的表單位置保持一致。 早些時候,我提供了正確的屬性以及帶有位置的頂部:固定。 放大時, right: 50px 屬性導致側邊欄逐漸遠離窗體並靠近視口的右邊緣,使其看起來很奇怪。
根據( 沒有頂部和底部的固定位置)的答案 - “使用固定位置而不設置頂部,左側,..將具有與相對於其自身初始位置的絕對位置相同的行為。 但是設置頂部、左側、...將固定相對於文檔或頁面的位置。”
//sidebar.js
handleSidebarScroll() {
$(document).scroll(function() {
let scrollTop = $(window).scrollTop;
let sidebar = $('.sidebar');
if(scrollTop < 250 ) {
If(sidebar.hasClass('sticky-sidebar-bottom')){
sidebar.removeClass('sticky-sidebar-bottom');
}
sidebar.addClass('sticky-sidebar-top');
}
else {
if(sidebar.hasClass('sticky-sidebar-top')){
sidebar.removeClass('sticky-sidebar-top');
}
sidebar.addClass('sticky-sidebar-bottom');
}
}
//SCSS
.sidebar-container{
position: relative;
}
.sidebar {
width: 200px;
height: 65vh;
border: 5px solid black;
&.sidebar-sticky-top{
position: absolute;
top: 50px;
}
&.sidebar-sticky-bottom{
position: fixed;
top: 150px;
}
}
對於scss的新手——“&.sidebar-sticky-top”是選擇同時具有“sidebar”和“sidebar-sticky-top”兩個類的元素。 &. 是父選擇器並引用外部選擇器(在本例中為“.sidebar”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.