使用Material CDK库中的拖放行为,我试图在拖动cdkDrag
元素时更改光标。
例如,在此StackBlitz中,光标悬停时为grab
。我希望它在拖动时变为抓取。这方面的一个例子是在Google工作表中抓取一行时发生的情况:
读取样式化拖放组件的留档,看起来向这个类添加游标属性应该可以做到这一点:
. cdk-drop-list-draging:当用户拖动项目时添加到cdkDropList的类。
代码如下所示:
.example-box {
/* other CSS properties */
cursor: grab;
}
.cdk-drop-list-dragging {
cursor: grabbing;
}
然而,正如您在StackBlitz中看到的,这似乎并没有改变光标。我猜这是因为这个类适用于列表而不是光标。
另一个潜力是. cdk-drad-preview
类:
.cdk拖动预览:当用户拖动可排序列表中的项目时,将在其光标旁边呈现该元素。默认情况下,元素看起来与正在拖动的元素完全相同。
这似乎也不起作用。我认为这是因为它改变了光标旁边呈现的元素,而不是光标本身。
关于如何在拖动时更改光标,有什么想法吗?
就我自己而言,我添加了以下样式覆盖,以便在拖动时重新启用自定义光标。
.draggable-element .drag-handle{
cursor: grab;
}
.draggable-element.cdk-drag-preview .drag-handle{
pointer-events: auto;
cursor: grabbing;
}
链接到实例
只需将光标:抓取
添加到示例框:活动
.example-box:active {
box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
0 8px 10px 1px rgba(0, 0, 0, 0.14),
0 3px 14px 2px rgba(0, 0, 0, 0.12);
cursor: grabbing;
}
:活动选择器用于选择活动链接并设置其样式。
当您单击链接时,它将变为活动链接。
提示:活动选择器可以用于所有元素,而不仅仅是链接。
这里有更多信息
https://www.w3schools.com/cssref/sel_active.asp
闪电战
https://stackblitz.com/edit/angular-b8kjj3-r993mc?embed=1
以前的解决方案对我不起作用,但这里有一些东西很可能对任何仍然有问题的人起作用:
首先添加这个全局CSS:
body.inheritCursors * {
cursor: inherit !important;
}
并将cdkDragStarted添加到cdkDrag元素中,并将其附加到。ts文件:
<div cdkDrag (cdkDragStarted)="dragStart($event)"></div>
在. ts文件中,当拖动开始和停止时,您可以切换所需的光标:
bodyElement: HTMLElement = document.body;
dragStart(event: CdkDragStart) {
this.bodyElement.classList.add('inheritCursors');
this.bodyElement.style.cursor = 'move';
//replace 'move' with what ever type of cursor you want
}
drop(event: CdkDragDrop<string[]>) {
this.bodyElement.classList.remove('inheritCursors');
this.bodyElement.style.cursor = 'unset';
...
...
}
这里有一个链接,指向StackBlitz的一个工作示例
希望这是有帮助的。
https://imgur.com/Ek3CAOt 我想在拖动元素时退出forbbiden光标。im使用html5默认拖放。我正在使用打字脚本 我试着从电动汽车转向电动汽车。目标风格光标到“抓取”光标,我试图从dropEffect等更改,但没有一个会产生欲望效果。这是拖动代码。 html模板: 打字稿删除代码:
如何在拖动时更改可拖动元素的文本,我有来自cdk/拖放库的代码片段。它为在拖动时捕捉事件提供参数。我可以通过本机元素进行更改,但它会更改所有样式,而且我还需要在dragover或其他操作上设置另一个事件。如果要在拖动元素上放置随机文本,有哪些选项? 在Html 在TS
我工作在一个应用程序实现新的拖放角材料CDK和我试图取消拖动事件的元素按下,我的意思是,我开始拖动元素,但如果我按当我拖动元素时,它应该回到我开始拖动它的位置,到目前为止,我还没有找到这样做的方法,有人知道我怎么做吗?在cdk留档里没有关于这个的任何想法。我试着做这样的事情。 样板 Ts组件 但到目前为止还没有成功。
你好,堆栈溢出,目前正在处理一个需要拖动元素的任务;不是本机API所做的图像拖动,而是拖动实际的元素。元素应该显示一个要删除的位置框,并在将其拖过一个区域时更改其自身的内部内容,该区域将在删除时删除该元素。到目前为止,我发现了这个有用的指令,帮助我做到这一点https://xieziyu.github.io/angular2-draggable/#/usage/basic 问题是,一旦元素通过某个
我在javaFX项目中使用了一个滑块,我有一个标签,当我移动滑块时会更新。 我希望在拖动滑块时更新标签,而不仅仅是在拖放时。 这是我的代码:
根据Angular CDK拖放文档,所有可拖放项都应使用迭代数组的指令编写。但是,如果我想使可拖放的项目是角度组件呢?什么是使它们可放下的程序? 例如,下面的代码是呈现一个普通的可删除div。如果我想在第二行渲染多个角度组件,该怎么办?在这种情况下,我不能使用指令,因为每个角组件都非常不同,我不能将它们保留在任何数组中。 怎么才能做到像下面这样呢?(以下代码不起作用) 我的主要目标是制作一个小部件