Components: Drag-and-drop is offset inside dialog if page is scrolled before opening dialog

Created on 26 Nov 2018  路  12Comments  路  Source: angular/components

Bug, feature request, or proposal:

Bug

What is the expected behavior?

After scrolling the page and then opening dialog, any drag-and-drop list in the dialog component should work properly.

What is the current behavior?

The drag-and-drop list's drop placeholder is offset aprox by the amount scrolled before opening the dialog.

What are the steps to reproduce?

I came across an example of this while looking for possible solution prior to making this issue:
@cisasteelersfan made it in one other ticket (that issue is not the same as this one!)
https://github.com/angular/material2/issues/13508#issuecomment-432428242

What is the use-case or motivation for changing an existing behavior?

It is pretty common use case to have drag-and-drop in a dialog

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

7.0.2

Is there anything else we should know?

P3 cddrag-drop materiadialog has pr

Most helpful comment

We just ran into this bug. Same symptoms - drag n drop in a dialog. Offsets are way off when dragging if page has been scrolled. Works correctly if page is not scrolled.

This does not work: .cdk-global-scrollblock { top: 0 !important; }
This works but will be deprecated and against our internal policy.
::ng-deep html.cdk-global-scrollblock {
top: 0px !important;
}

After 2 years and multiple reports is anyone reviewing?

All 12 comments

I have the same issue in 7.1.1 Angular Material.

@crisbeto hi, it would be nice to hear something, it is very important, thx

@kernyden If it helps you, as a temporary workaround, I forced top to be 0 (usually it is set to the -scrollOffset before opening dialog):

.cdk-global-scrollblock {
    top: 0 !important;
}

This way there won't be no offset in drag and drop, but opening a dialog will look a bit ugly.

@pmilic021 no, it hasn't helped me, this thing reproduces not only on modal, it happens with lists have scroll.

Try to add something like this to your global styles:

.cdk-global-scrollblock {
   position: initial !important;
   overflow: hidden !important;
}

@radzix23 in actual version of cdk dnd we cant scroll with an active dnd effect :( - https://github.com/angular/material2/issues/13588

I have the same issue in ^7.3.7 Angular Material.

Any update on this issue?

In Angular material 10 this is still an issue... Will it be fixed?

Same issue,
Angular material 10

Temporary workaround...
.cdk-global-scrollblock { top: 0 !important; }

This is still an issue for me and none of the workarounds seem to work for me, any solution to this?

We just ran into this bug. Same symptoms - drag n drop in a dialog. Offsets are way off when dragging if page has been scrolled. Works correctly if page is not scrolled.

This does not work: .cdk-global-scrollblock { top: 0 !important; }
This works but will be deprecated and against our internal policy.
::ng-deep html.cdk-global-scrollblock {
top: 0px !important;
}

After 2 years and multiple reports is anyone reviewing?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vanor89 picture vanor89  路  3Comments

savaryt picture savaryt  路  3Comments

crutchcorn picture crutchcorn  路  3Comments

LoganDupont picture LoganDupont  路  3Comments

constantinlucian picture constantinlucian  路  3Comments