4

我正在尝试在 Blazor 中实现为可移动的组件,但我不确定如何将 JavaScript 转换为 Blazor。我通常是为了实现类似的目标:https ://stackoverflow.com/a/47596086/767942

  • 如何处理 @onmousedown 并将其转换为 Blazor 以实现上例中的可移动 <div>?
4

1 回答 1

12

这是使用ondragstartandondragend事件来制作可移动“弹出窗口”的另一种方法。

<div draggable="true"
     @ondragend="OnDragEnd" @ondragstart="OnDragStart"
     style="position:absolute; top: @(offsetY)px; left: @(offsetX)px; border-color: black;">
   <div>your content</div>
</div>

@code 
{
     private double startX, startY, offsetX, offsetY;

     private void OnDragStart(DragEventArgs args) {
         startX = args.ClientX;
         startY = args.ClientY;
 }

     private void OnDragEnd(DragEventArgs args)
 {
         offsetX += args.ClientX - startX;
         offsetY += args.ClientY - startY;
    }
}
于 2020-01-07T15:45:54.257 回答