As you can see on this link, http://jsbin.com/ozapol/9 ,
Jquery disables the scrollbars on some versions of IE and the latest version of chrome. (I didnt try any other yet...)
Is there a way to keep scrollbars enabled to be able to scroll through a long long dialog ?
Thank you ! Bye
Nice solution for Internet Explorer (Thanks to jk.)
html {overflow-y : scroll}
Brutal workaround for Chrome (Thanks to jk.)
On Chrome, JqueryUI Hijacks mouse events on the scrollbars. This looks like a bug that is referred in the links above. In order to remove those bindings, you have to unbind events each time you create a modal dialog :
$("#longdialog").dialog({
open: function(event, ui) {
window.setTimeout(function() {
jQuery(document).unbind('mousedown.dialog-overlay')
.unbind('mouseup.dialog-overlay');
}, 100);
},
modal:true
});
There is the final example : http://jsbin.com/ujagov/2
Links to bug reports :
Approach: A simple solution to this problem is to set the value of the “overflow” property of the body element to “hidden” whenever the modal is opened, which disables the scroll on the selected element.
A vertical or horizontal bar commonly on the far right or bottom of a window that lets you move the window viewing area up, down, left, or right. Most people today are familiar with scroll bars because of the need to scroll up and down on almost every Internet web page.
A scroll bar's orientation determines the direction in which scrolling occurs when the user operates the scroll bar. A horizontal scroll bar enables the user to scroll the content of a window to the left or right. A vertical scroll bar enables the user to scroll the content up or down.
There are two types of scroll bars: vertical and horizontal.
You can keep scrollbars enabled with:
html {overflow-y: scroll;}
You could add that CSS programmatically so it doesn't affect every page of the site and possibly the design.
And, you may have to unbind the mouse events that the modal dialog hijacks:
$("#longdialog").dialog({
open: function(event, ui) {
window.setTimeout(function() {
jQuery(document).unbind('mousedown.dialog-overlay')
.unbind('mouseup.dialog-overlay');
}, 100);
},
modal:true
});
See Scrollbar problem with jQuery UI dialog in Chrome and Safari
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With