Blazor получить положение / координаты div - PullRequest
2 голосов
/ 07 января 2020

Я создаю всплывающий компонент и хочу, чтобы он был подвижным. Я могу переместить его, используя стиль верхний / левый, но сейчас они имеют значение init top:0;left:0;, поэтому всплывающее окно появляется в верхнем левом углу страницы. Я пытаюсь заставить его появиться в центре страницы, а затем получить верхние левые координаты моего div в ордоре, чтобы правильно управлять моим исчислением после.

вот что у меня сейчас:

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

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

   protected override void OnInitialized() {
        base.OnInitialized();
        ResetStartPosition();
    }

   private void ResetStartPosition() {
        //Set offsetX & offsetY to the top left div position
    }

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

    private void OnDragEnd(DragEventArgs args) {
        offsetX += args.ClientX - startX;
        offsetY += args.ClientY - startY;
    }
}
...