Closed Bug 246394 Opened 20 years ago Closed 20 years ago

Page flashing with JS style.display "block" and "none"

Categories

(SeaMonkey :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 132337

People

(Reporter: travis.hardiman+bugzilla, Unassigned)

References

()

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 CombustionTiger/0.8 (All your Firefox/0.8 are belong to Firesomething) TraviBlog: http://travis.servebeer.com/blog.net/
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 CombustionTiger/0.8 (All your Firefox/0.8 are belong to Firesomething) TraviBlog: http://travis.servebeer.com/blog.net/

(from http://forums.mozillazine.org/viewtopic.php?t=83899)

If you visit this page and click on the imagemap links you'll see what I mean:
http://www.brandensemble.com/features2.html
it appears to be valid :
http://validator.w3.org/check?verbose=1&uri=http%3A//www.brandensemble.com/features2.html

I can produce it in:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040206 Firefox/0.8
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7) Gecko/20040608
Firefox/0.8.0+
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624
Netscape/7.1 (ax)

If I set the <div> which contains the imagemap to position:absolute the flashing
doesn't occur, but I really wouldn't like to go that route.

Here's the JS I'm using to show/hide the <div>s:
[code]
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var dom = document.getElementById ? 1 : 0;
var activePop = 0;
function showPopup(idNum)
{
	if (dom)
	{
		if (activePop > 0)
		{
			document.getElementById("popup" + activePop.toString()).style.display="none";
			document.getElementById("popupro" + activePop.toString()).style.display="none";
		}
		document.getElementById("popup" + idNum.toString()).style.display="block";
		document.getElementById("popupro" + idNum.toString()).style.display="block";
		activePop = idNum;
	}
}
[/code]

...and...

[code]
 href="#" onclick="javascript:showPopup(1); return false;" 
[/code]

it doesn't occur in IE5/IE6/Safari/Opera 7.51

Reproducible: Always
Steps to Reproduce:
1. create page with several <div>s in a row
2. change <div>#2.style.display from "none" to "block" (or vice versa)
3. observe brief flicker

Actual Results:  
The second <div> jumps up to the top of the page briefly enough to cause a
slight flicker

Expected Results:  
there should be no flicker

I've never noticed this before, and it has been difficult for me to reproduce. 
The xHTML and CSS are both valid.
Assignee: firefox → general
Component: General → Browser-General
Product: Firefox → Browser
QA Contact: firefox.general → general
Version: unspecified → Trunk
probably related to bug 246138, but this bug needs a minimal testcase.
this is a simplified test page which will show a flicker even when an elements
style.display is toggled between 'block' and 'none'.  the element that flickers
has the float set to 'left' or 'right' and the overflow is set to 'auto' or
'scroll'.  Test cases and workaround included in source.
Depends on: 246138
A float & overflow:auto & display toggles between "block" and "none", sounds 
familar...

*** This bug has been marked as a duplicate of 132337 ***
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: