实现可移动<;部门>;在Blazor
我试图在Blazor中实现一个可移动的组件,但我不确定如何将JavaScript翻译成Blazor。 我通常会努力实现以下目标:实现可移动<;部门>;在Blazor,blazor,blazor-client-side,Blazor,Blazor Client Side,我试图在Blazor中实现一个可移动的组件,但我不确定如何将JavaScript翻译成Blazor。 我通常会努力实现以下目标: 如何处理@onmousedown并将其转换为Blazor,以实现上述示例中可移动的 这里是另一种方法,使用我用来创建可移动的“弹出窗口”的ondragstart和ondragend事件 你的内容 @代码 { 专用双startX、startY、offsetX、offsetY; 私有void OnDragStart(DragEventArgs args){ start
- 如何处理@onmousedown并将其转换为Blazor,以实现上述示例中可移动的
这里是另一种方法,使用我用来创建可移动的“弹出窗口”的
和ondragstart
事件ondragend
你的内容 @代码 { 专用双startX、startY、offsetX、offsetY; 私有void OnDragStart(DragEventArgs args){ startX=args.ClientX; startY=args.ClientY; } 私有无效的OnDragEnd(DragEventArgs args) { offsetX+=args.ClientX-startX; offsetY+=args.ClientY-startY; } }
在Blazor上提供。不需要JS。相关的更多信息:我刚刚提出了与你发布的示例相同的想法(一直在研究它),但两者都相当粗。结果并不像我前面提到的例子中那样平滑拖动。onmousedown
<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; } }