css ng-select下拉位置在可滚动div中不正确

vs91vp4v  于 2023-10-21  发布在  其他
关注(0)|答案(8)|浏览(120)

我面临的问题与ng-select时,它是在滚动可div使用。请找到屏幕截图-x1c 0d1x
问题:搜索文本框和下拉框之间出现差距,市中心应随搜索输入框移动。重现问题-https://stackblitz.com/edit/ng-select-uygqu1?file=app%2Fapp.component.ts
单击第一个下拉列表(ng-select)。它将打开可用的选项。现在通过使用笔记本电脑鼠标键盘上的两个手指滚动/从鼠标滚动。
任何帮助都非常感谢。
先谢了。

mefy6pfw

mefy6pfw1#

你把下拉列表附加到body上,而不是ng-select,所以根据定义,它会根据body计算ng-select的位置,也就是它最后接收到的位置。
不会更新位置一旦打开当你滚动(* 不支持 ),你需要关闭下拉当滚动发生( 不支持ng-select -issue is currently opened-建议也支持在链接 *),然后打开下拉需要。
即使你没有关闭下拉菜单,它在滚动时奇迹般地更新了位置,下拉菜单也会显示,即使ng-select隐藏在溢出中,这看起来并不好。
我建议在滚动时关闭下拉菜单。你不能既有绝对定位,又在表外显示它,然后在ng-select隐藏时隐藏它。jQuery可能是,但我不太了解它。

2uluyalo

2uluyalo2#

appendTo=".your-class"

将这一行添加到

qlvxas9a

qlvxas9a3#

我用下面的方法解决了这个问题:

  • 删除appendTo="body"
  • overflow: visible添加到ng-select
<ng-select
  style="overflow: visible;"
  ...
</ng-select>
gopyfrb3

gopyfrb34#

点击此链接-https://ng-select.github.io/ng-select#/append-to-element
我在我的angular项目中遇到了这个问题,我在modal中使用ng-select。如果,则打开并尝试滚动模态的时间。我尝试了所有现有的解决方案,但这些解决方案对我没有帮助。然后,我解决了我的问题,就像下面一样。
解决方案-创建一个 Package 器,将ng-select保留在该 Package 器中,并使用点(.)在ng-select中添加appendTo属性。

<div class="userList-wrapper" style="position: relative">
  <div style="overflow-y: auto; overflow-x: hidden">
    <ng-select
      appendTo=".userList-wrapper"
      [items]="userList"
      class="no-shadow no-outline"
      bindLabel="name"
      bindValue="name"
      [searchable]="true"
      [clearable]="false"
      placeholder="Select user name"
    </ng-select>
  </div>
</div>
63lcw9qa

63lcw9qa5#

请确保“”的位置是相对的,并且没有应用额外的间距

7gcisfzg

7gcisfzg6#

仅删除appendTo=“body”。它会像你预期的那样工作。

nnvyjq4y

nnvyjq4y7#

删除[appendTo]="'body'"
设置[appendTo]="'body'"意味着HTML菜单将被附加到HTML文档的元素中,而不是作为使用ng-select的组件或元素的子项。

s6fujrry

s6fujrry8#

::ng-deep .ng-dropdown-panel {
    left: 0 !important;
    right: 0 !important;
    margin: 0 auto;
}

//this worked for me perfectly fine

相关问题