Angular拖放CDK中的自动滚动在可滚动的div中丢失了放置区域。
创始人
2024-10-29 19:31:22
0

问题描述: 在使用Angular拖放CDK进行拖放操作时,放置区域位于一个可滚动的div中,但是当拖动的元素靠近边缘时,div没有自动滚动以适应放置区域。

解决方法: 要解决这个问题,可以使用拖放CDK中的自动滚动功能。以下是一个示例代码,演示如何在可滚动的div中使用自动滚动功能。

首先,在你的组件中导入需要的模块和类:

import { CdkDragDrop, moveItemInArray, transferArrayItem, CdkDragEnter, CdkDragExit, CdkDragStart, CdkDragMove } from '@angular/cdk/drag-drop';
import { ViewportRuler } from '@angular/cdk/overlay';
import { ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';

然后,在组件中定义一个ViewChild来引用可滚动的div元素:

@ViewChild('scrollContainer', { static: true }) scrollContainer: ElementRef;

在ngOnInit方法中,设置自动滚动的配置:

ngOnInit() {
  this.viewportRuler.change().subscribe(() => {
    this.setScrollConfig();
  });
}

setScrollConfig() {
  const scrollContainer = this.scrollContainer.nativeElement;
  
  const config = {
    scrollContainer: scrollContainer,
    orientation: 'vertical',
    autoScroll: true,
    scrollSpeed: 15,
    scrollTriggerMargin: 50
  };
  
  this.viewportRuler.setScrollConfig(config);
}

在拖动事件中,监听dragMove事件并调用自动滚动方法:

onDragMove(event: CdkDragMove) {
  this.viewportRuler.autoScroll(event.pointerPosition);
}

最后,在你的模板中,将可滚动的div绑定到ViewChild,并在拖放CDK的容器中添加相应的事件处理程序:

确保为可滚动的div添加一个CSS类名,并使用CSS样式设置适当的高度和宽度。

这样,当拖动的元素靠近放置区域的边缘时,可滚动的div将自动滚动以适应放置区域,从而解决了问题。

相关内容

热门资讯

红龙扑克辅助器!红龙扑克电脑模... 红龙扑克辅助器!红龙扑克电脑模拟器,(红龙扑克)真是真的有挂(详细辅助工具教程)是一款可以让一直输的...
微扑克辅助软件!微扑克有保险吗... 微扑克辅助软件!微扑克有保险吗,(微扑克游戏)其实是有挂(详细全自动机器人教程);一、微扑克辅助软件...
德扑自定义!德扑线上创建房间,... WePoker透视辅助版本稳定性对比与推荐‌:德扑自定义!德扑线上创建房间,德扑之星ai代打原来是有...
德扑之星比赛!德扑软件决策,德... 德扑之星比赛!德扑软件决策,德扑开发真是是真的有挂(详细ai代打教程);亲真的是有正版授权,小编(透...
德州ai辅助软件!德扑之星开桌... 德州ai辅助软件!德扑之星开桌怎么设置,德扑之星ai软件其实有挂(详细功能教程);德州ai辅助软件软...
aapoker透明挂!wepo... 【福星临门,好运相随】;aapoker透明挂!wepoke有软件吗(Wepoke是真的)本来是真的有...
德扑ai软件!德扑人工智能软件... 德扑ai软件!德扑人工智能软件,德扑之星内部都是真的有挂(详细有挂吗教程);超受欢迎的稳赢小游戏,经...
微扑克有辅助挂!微扑克有辅助挂... 微扑克有辅助挂!微扑克有辅助挂吗,(微扑克苹果版)都是存在有挂(详细有辅助挂教程);是一款可以让一直...
we辅助poker德之星!wo... 1、we辅助poker德之星!wopoker游戏辅助器(wepoke)本来存在有挂(详细透明挂教程)...
红龙扑克辅助!红龙扑克是正规的... 红龙扑克辅助!红龙扑克是正规的吗,(红龙扑克)确实真的有挂(详细辅助教程);是一款可以让一直输的玩家...