【问题标题】:Angular cdk drap drop - dynamic placeholder heightAngular cdk 拖放 - 动态占位符高度
【发布时间】:2020-03-03 12:41:04
【问题描述】:

我想将占位符高度设置为拖动元素的高度。

现在我使用最小元素高度的静态高度占位符。我找不到任何有关如何操作的信息,现在不知道。

组件html

<div class="taskList" cdkDropList id="{{ 'cdk-task-drop-list-' + categoryId }}" [cdkDropListData]="taskList"
[cdkDropListConnectedTo]="categoryIdList" (cdkDropListDropped)="onDrop($event)">
    <ng-container *ngIf="task.isApproved || task.authorId===userId || userAccessLevel >= 3">
        <div class="placeholder" *cdkDragPlaceholder></div>
        <div class="task">
            ...
        </div>
    </ng-container>
</div>

css

.placeholder{
    position: relative;
    margin-top: 1px; 
    margin-bottom: 5px;
    min-height: 75px;
    transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
    vertical-align: middle;
}

有什么想法吗?

【问题讨论】:

    标签: angular angular-cdk angular-cdk-drag-drop


    【解决方案1】:

    尝试获取拖动元素的高度,并在此基础上更改占位符高度。

    cdkDragStarted(event:any){
       this.height = event.source.element.nativeElement.offsetHeight
    }
    

    HTML:

    <div  class="example-box"  *ngFor="let movie of movies; let i = index"  (cdkDragStarted)="cdkDragStarted($event)" cdkDrag >
        <div [ngStyle]="{'min-height.px':height  }" class="example-custom-placeholder" *cdkDragPlaceholder></div>
        {{movie}}
    </div>
    

    这是我的例子:https://stackblitz.com/edit/angular-zhdujp-kppghs?file=src/app/cdk-drag-drop-custom-placeholder-example.ts

    【讨论】:

    • 这个还是有问题的。我遇到了与您的示例相同的问题:让我们将大盒子拖到一个小盒子上 - 小盒子在大元素内,而不是在顶部或底部。但是当拖动到另一个容器时 - 完美地工作,只是不适用于同一个容器。有什么解决办法吗?
    • (* 几乎完美 - 当下降到另一个容器时,不能下降到较低的位置,然后下降列表高度是,在占位符出现之前)
    • 当我在 ngStyle 中设置静态高度时,它仍然坏了。只有使用 style="123px" 才能正常工作...但是如何在经典 html 样式属性中使用此变量?
    猜你喜欢
    • 1970-01-01
    • 2020-01-18
    • 2019-05-05
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多