Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scrollbar click closes modal with long content #36855

Closed
3 tasks done
IvanVasquez opened this issue Jul 27, 2022 · 3 comments · Fixed by #36863
Closed
3 tasks done

Scrollbar click closes modal with long content #36855

IvanVasquez opened this issue Jul 27, 2022 · 3 comments · Fixed by #36863

Comments

@IvanVasquez
Copy link

IvanVasquez commented Jul 27, 2022

Prerequisites

Describe the issue

Previously on v5.1 when a modal was open, I was able to scroll throw the content by clicking any part of the window scrollbar, now on 5.2 clicking the scrollbar closes automatically the modal.

I tested on bootstrap docs page just to be sure I wasn't doing anything different and the issue can be tested by opening the demo modal for long content and clicking the scrollbar.

Reduced test cases

v5.1 (scroll bar click works)
https://getbootstrap.com/docs/5.1/components/modal/#scrolling-long-content

v5.2.0 (scroll bar click closes modal)
https://getbootstrap.com/docs/5.2/components/modal/#scrolling-long-content

What operating system(s) are you seeing the problem on?

Windows

What browser(s) are you seeing the problem on?

Chrome, Firefox, Microsoft Edge

What version of Bootstrap are you using?

v5.2.0

@julien-deramond
Copy link
Member

This issue seems to come from d05c42a.

@dgibbs64
Copy link

dgibbs64 commented Jul 29, 2022

I can confirm this behaviour as well.

@plonknimbuzz
Copy link

plonknimbuzz commented Aug 5, 2022

temporary fix while waiting permanent bug fix:

edit bootstrap.js (v5.2.0) LINE 3008

bootstrap/dist/js/bootstrap.js

Lines 3008 to 3011 in a685b96

if (event.target !== event.currentTarget) {
// click is inside modal-dialog
return;
}

before

if (event.target !== event.currentTarget) {
  // click is inside modal-dialog
  return;
}

after

if (event.target !== event.currentTarget) {
  // click is inside modal-dialog
  return;
}
if (event.offsetX > event.target.clientWidth || event.offsetY > event.target.clientHeight) 
{
      // click is on scrollbar
      return;
}

NOTE:

  • maybe break some feature. Do at your own Risk!!
  • if you are using popper bundle, just find similar line of code
    if (event.target !== event.currentTarget) {
    // click is inside modal-dialog
    return;
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants