Closed Bug 249922 Opened 20 years ago Closed 20 years ago

Movie Theater marquee doesn't scroll properly; it vibrates

Categories

(Core :: Layout: Positioned, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 201897

People

(Reporter: developers, Unassigned)

References

()

Details

(Keywords: regression, testcase)

Attachments

(3 files)

User-Agent:       Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040626 Firefox/0.9.1

Open the main page in both Internet Explorer and in FireFox.  Notice the 
intended behaviour in IE, with FireFox having problems -- What seems to be the 
problem here?  Is it the page fault or Mozilla fault?  

Reproducible: Always
Steps to Reproduce:
1. Open the main page in both Internet Explorer and in FireFox.
2. Notice the intended marquee scroll behaviour in IE, and vibrating images in 
FireFox.  (JavaScript powered marquee)

Actual Results:  
Vibrating images in FireFox.  

Expected Results:  
Smooth scrolling images.
The link of offending JavaScript powered marquee is:
http://www.famousplayers.com/Default.asp?&noredirect=true&noredirect=true
Reporter: please file bugs appropriately -- JavaScript Engine is only for
low-level bugs to do with the JavaScript language, not things like animated
image jerkiness.

/be
Assignee: general → general
Status: UNCONFIRMED → NEW
Component: JavaScript Engine → DOM: Level 0
Ever confirmed: true
> not things like animated image jerkiness.

It's not jerkiness.  The animation DOES NOT even happen :( -- it just 
vibrates "in-place" back and fourth.

So, it is a fundamental bug *somewhere*.  Maybe it's FamousPlayer's fault, but 
I checked the JavaScript, so my suspicions is now Mozilla Firefox's fault.
Worksforme in Fx 0.8.  Someone please confirm?

/be
If it works in 0.8, then there's a problem with 0.9.1 which I use.

Can someone else confirm problem exists in 0.9.1?
I just tested in my old copy of Netscape 6.  Works perfectly.  

Ok, it seems like it is more probably a FireFox 0.9.1. problem (the exact 
version is pasted in the above).  My guess from my programmer mind is 90% 
probability it's a FireFox bug rather than an obscure JavaScript behaviour.

(Note to others: If you're greeted to select the language; go past this 
language-selection screen first to see the scrolling movie marquee of this 
theaters site.)
Addendum: Works perfectly in Netscape 7, too.  I think I've tried out all the 
browsers I have handy here.
I see this problem in a Mozilla build from a few months ago. Not likely to be a
Firefox only problem...
Interesting.  This regressed between 2003-12-21-09 and 2003-12-22-09.  The
culprit was the fix for bug 227567, which gave some things that used to have a
zero clientWidth a positive one.  As a result, the page's code that does:

	this.width = (this.el.clientWidth)? this.el.clientWidth: (id &&
document.getElementById && document.getElementById(id).offsetWidth)?
document.getElementById(id).offsetWidth: (this.el.offsetWidth)?
this.el.offsetWidth: (this.css.clip.width)? this.css.clip.width: 0;

(in http://www.famousplayers.com/js/dw_scroll.js) started using the (newly
nonzero) clientWidth instead of offsetWidth; in this case it looks like the
clientWidth is 429px while the offsetWidth is 1418px.  So the behavior changes
quite a bit.

Now the question is, why does this work in IE?  The code doesn't explicitly
browser-sniff as far as I can tell....
Component: DOM: Level 0 → DOM: Mozilla Extensions
Keywords: regression
OS: Windows XP → All
QA Contact: pschwartau → ian
Hardware: PC → All
The "marquee" on the site is implemented purely in JS and CSS (it's not
a <marquee>), so changing Component to Layout.

Boris, yes, the site regressed as a result of bug 227567 but I think we have
the correct behaviour.  The difference to IE is that abs.pos. DIVs in IE
seems to grow to fit its normal flow content. Let me illustrate with a few
testcases.
Assignee: general → nobody
Component: DOM: Mozilla Extensions → Layout
QA Contact: ian → core.layout
Attached file Testcase
This is a reduced testcase for the site. The "width" is calulated using the
following order of priority:
this.el.clientWidth
this.el.document.getElementById(id).offsetWidth
offsetWidth
this.css.clip.width
Attached file abs.pos. width
This is the reason for the difference between IE/Mozilla.
In IE the abs.pos with the blue border grows to fit the table.
In Mozilla it has the width of the containing block.

It's the .clientWidth of this DIV that is used to calculate a max x-position
by the script - when it's reached the content starts scrolling in the other 
direction. In Mozilla the max position is zero due to the DIVs having the
same width.
Attached file Testcase - this works
Changing the script to use this order fixes the problem:

this.el.document.getElementById(id).offsetWidth
this.el.offsetWidth
this.el.clientWidth
this.css.clip.width
Hmm... Arguably, the shrink-to-fit width should be the preferred width here,
hence wider than the containing block (per CSS2.1).
Yes, you're right and when I tried with an old patch for bug 201897 the
site worked fine.  I'll see what I can do...
Component: Layout → Layout: R & A Pos
Depends on: 201897
Keywords: testcase
QA Contact: core.layout → core.layout.r-and-a-pos

*** This bug has been marked as a duplicate of 201897 ***
Status: NEW → RESOLVED
Closed: 20 years ago
No longer depends on: 201897
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: