我发现了一些类似的问题,但不幸的是,他们没有为我的情况下工作.我想要的东西,出现在我的2步入门屏幕的页面底部,但如果我向上滚动,它不应该是粘滞的,不应该出现在滚动.有人可以建议什么?
我尝试使用bottom来实现这一点:0和位置:绝对的,但这使得页脚粘性,即使我向上滚动。
如果我去掉底部:0并使位置:相对的,修复了粘滞问题,但使页脚在屏幕的步骤1中出现,并在步骤2中显示良好。
MainFooter.vue组件中的页脚类-它是主 Package 类:
.footer {
font-style: normal;
font-weight: 500;
font-size: 11px;
display: flex;
flex-direction: column;
width: 100%;
padding-left: 24px;
padding-right: 24px;
align-items: center;
text-align: center;
text-transform: capitalize;
color: var(--black);
margin-top: 100px;
position: relative;
background-color: var(--white);
}
我的onboarding.vue组件布局结构:
<template>
<div class="d-flex mb-3 justify-content-between">
<!—header—>
</div>
<div class="d-flex flex-column ">
<div class="px-2 flex-fill" v-if="currentStep == 1”>
<!--Step 1: Language Selection-->
</div>
<div class="px-2 flex-fill" v-if="currentStep == 2">
<!--Step 2: Agent Selection-->
</div>
</div>
<div class="d-flex mb-3 justify-content-end">
<MainFooter />
</div>
</template>
这是我的两步入门屏幕图像。x1c 0d1xx 1c 1d 1x
2条答案
按热度按时间cgh8pdjw1#
要实现所需的行为,您可以使用CSS和JavaScript的组合。您可以尝试以下方法:
1.将页脚的位置设置为
absolute
和bottom: 0
,就像您已经做过的那样。1.当页脚元素进入视图时,向其添加一个类,当它退出视图时,移除该类。
1.使用类在
absolute
和fixed
之间切换页脚的位置。下面是一个示例实现:
HTML:
CSS:
JavaScript:
此代码侦听窗口上的滚动事件并检查 Package 器元素是否在视图中。如果 Package 器元素在视图中,则页脚的位置设置为
absolute
,否则设置为fixed
。您可能需要调整代码以适应特定的布局和样式需求。g2ieeal72#
问题很可能是您在页脚上使用了
position: absolute
,但最近的定位祖先元素有 no 位置,因此页脚将其自身定位为相对于文档主体。您可能需要将所有内容 Package 在另一个div中来完成此操作,但如果您这样做了,您可以将
position: relative
应用于父div,为页脚提供一个元素,该元素不是要将其自身定位到的文档主体。请尝试这个codesandbox示例。滑块可以用来改变页面高度,以显示页脚如何始终保持在底部。
需要注意的重要元素是页脚周围的
container
div和父page
div(为了清晰起见,删除了一些无关的代码)将
position: absolute
赋给容器div,将position: relative
赋给页面div,将始终将容器定位在页面div的底部,而不管div中还有其他内容。如果您在沙箱中注解掉
position: relative
,您将看到容器div如何将其自身定位到文档主体,并对滚动做出React。