首页 > 解决方案 > 在 cdk-virtual-scroll-viewport Angular 之外显示绝对元素

问题描述

我有一个cdk-virtual-scroll-viewport元素,在这个元素内部我有一个相对定位的 div,里面有一个绝对定位的元素。基本上我希望能够在外部显示绝对定位的项目,cdk-virtual-scroll-viewport但它被切断了......

这是这个问题的堆栈闪电

https://stackblitz.com/edit/angular-kavjsh

组件.html

<div class="container">
  <cdk-virtual-scroll-viewport itemSize="70">
    <div class="test" *cdkVirtualFor="let name of names">
      <p>{{name}}</p>
      <div class="test-item"></div>
    </div>
  </cdk-virtual-scroll-viewport>
</div>

组件.css

p {
  font-family: Lato;
}

cdk-virtual-scroll-viewport {
  width: 150px;
  border: 1px solid black;
  height: 600px;
}

.test {
  position: relative;
}

.test-item {
  position: absolute;
  background: black;
  width: 150px;
  height: 100px;
  left: 50%;
}

这是怎么回事

在此处输入图像描述

我想要的结果是这样

在此处输入图像描述

各种定位配置都试过了还是不行?

任何帮助,将不胜感激!

标签: cssangularangular-cdkangular-cdk-virtual-scroll

解决方案


您可以使用以下步骤

  • 重置contain为“初始”或“布局”
  • 更改overflow为“可见”

cdk-virtual-scroll-viewport {
   overflow: visible;
    contain: initial;
  
}

:host() ::ng-deep cdk-virtual-scroll-viewport .cdk-virtual-scroll-content-wrapper {
   contain: inherit;
}

https://stackblitz.com/edit/angular-miqwyw?file=src/app/app.component.css


推荐阅读