Ticket #2450 (closed bug: invalid)
dialog over the div with scrollbars in firefox 2/mac
| Reported by: | kof13 | Owned by: | scott.gonzalez |
|---|---|---|---|
| Priority: | trivial | Milestone: | 1.2.4 |
| Component: | ui | Version: | 1.2.3 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
Is it possible to show the dialog over the scrollbars of the div? Temporary I can see the scrollbars of the div behind the dialog. If not, is it possible to determine if behind the dialog any scrollbars and set overflow to hidden bei showing dialog and set auto on closing?
Change History
comment:3 Changed 5 years ago by scott.gonzal
- Status changed from new to closed
- Resolution set to worksforme
I can't reproduce the behavior you have described. If I create a div that has scrollbars and place a dialog over the scrollbars, they do not pierce through the dialog (tested in Firefox 2.0.0.12 on Windows).
If you continue to have this problem, please re-open this ticket and provide a test page.
comment:4 Changed 5 years ago by scott.gonzal
- Status changed from closed to reopened
- Resolution worksforme deleted
- Summary changed from dialog over the div with scrollbars in firefox 2 to dialog over the div with scrollbars in firefox 2/mac
This problem is for Macs only. See related thread for possible fix.
comment:5 Changed 5 years ago by ivan
The background iframe trick works for FF2/Mac as well, but currently the bgiframe plugin only handles IE6. This patch works for me (caution: I didn't test it under IE6, and it doesn't support all the options available).
--- a/plugins/bgiframe/jquery.bgiframe.js
+++ b/plugins/bgiframe/jquery.bgiframe.js
@@ -71,7 +71,8 @@
*/
$.fn.bgIframe = $.fn.bgiframe = function(s) {
// This is only for IE6
- if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
+ if ( ($.browser.msie && /6.0/.test(navigator.userAgent)) ||
+ (/Mac/.test(navigator.platform)) && /Firefox\/2/.test(navigator.userAgent) ) {
s = $.extend({
top : 'auto', // auto == .currentStyle.borderTopWidth
left : 'auto', // auto == .currentStyle.borderLeftWidth
@@ -80,18 +81,22 @@ $.fn.bgIframe = $.fn.bgiframe = function(s) {
opacity : true,
src : 'javascript:false;'
}, s || {});
- var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
- html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
+ var prop = function(n){return n&&n.constructor==Number?n+'px':n;};
+ var html = ($.browser.msie) ? '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
'style="display:block;position:absolute;z-index:-1;'+
(s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWi
'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLef
'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.wid
'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.
- '"/>';
+ '"/>'
+ : '<iframe class="bgiframe" frameborder="0" tabindex="-1" src="'+s.src+'"'+
+ 'style="display:block;position:absolute;z-index:-1;'+
+ (s.opacity !== false?'opacity: 0;':'')+
+ 'top:0;left:0;width:100%;height:100%;"/>';
return this.each(function() {
if ( $('> iframe.bgiframe', this).length == 0 )
- this.insertBefore( document.createElement(html), this.firstChild );
+ this.insertBefore( $(html).get(0), this.firstChild );
});
}
return this;
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
