Closed
Bug 61053
Opened 25 years ago
Closed 23 years ago
globaltechnovations.com - [document.layers] Javascript Floating Menu Does Not Work
Categories
(Tech Evangelism Graveyard :: English US, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: la, Assigned: bc)
References
()
Details
A previously used floating menu (actually an image that is mapped as a menu) is
commonly used and has worked for years now in Netscape 4.x and IE 4.x and IE
5.x. It does not work now in Netscape 6 or even position itself where it should.
Check out the url above to see what I mean.
CSS code:
#floater {
position: absolute;
left: 8;
top: 20;
width: 160;
height: 132;
visibility: visible;
}
Javascript Code:
<SCRIPT LANGUAGE="JavaScript">
<!--
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0; lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
<!-- CHASE CODE -->
function heartBeat() {
if(IE) { diffY = document.body.scrollTop + 95; diffX =
document.body.scrollLeft; }
if(NS) { diffY = self.pageYOffset + 95; diffX = self.pageXOffset; }
if(diffY != lastScrollY) {
percent = .1 * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE)
document.all.floater.style.pixelTop += percent;
if(NS) document.floater.top += percent;
lastScrollY = lastScrollY + percent;
}
if(diffX != lastScrollX) {
percent = .1 * (diffX - lastScrollX);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.floater.style.pixelLeft += percent;
if(NS) document.floater.left += percent;
lastScrollX = lastScrollX + percent;
}
}
<!-- CHASE CODE -->
<!-- DRAG DROP CODE -->
function checkFocus(x,y) {
var totalY, totalX;
floatx = document.floater.pageX;
floaty = document.floater.pageY;
floatwidth = document.floater.clip.width;
floatheight = document.floater.clip.height;
if(20 == 0) totalY = floatheight;
else totalY = 20;
if(0 == 0) totalX = floatwidth;
else totalX = 0;
if( (x > floatx && x < (floatx+totalX)) && (y > floaty && y <
(floaty+totalY))) return true;
else return false;
}
function grabIt(e) {
if(IE) {
whichIt = event.srcElement;
while (whichIt.id.indexOf("floater") == -1) {
whichIt = whichIt.parentElement;
if (whichIt == null) { return true; }
}
whichIt.style.pixelLeft = whichIt.offsetLeft;
whichIt.style.pixelTop = whichIt.offsetTop;
currentX = (event.clientX + document.body.scrollLeft);
currentY = (event.clientY + document.body.scrollTop);
if(20 == 0) totalY = whichIt.style.pixelHeight;
else totalY = 20;
if(0 == 0) totalX = whichIt.style.pixelWidth;
else totalX = 0;
if(!(event.clientX > whichIt.offsetLeft && event.clientX
< whichIt.offsetLeft + totalX) ||
!(currentY > whichIt.offsetTop && currentY <
whichIt.offsetTop + totalY)) whichIt = null;
} else {
window.captureEvents(Event.MOUSEMOVE);
if(checkFocus (e.pageX,e.pageY)) {
whichIt = document.floater;
FloatTouchedX = e.pageX-document.floater.pageX;
FloatTouchedY = e.pageY-document.floater.pageY;
}
}
return true;
}
function moveIt(e) {
if (whichIt == null) { return false; }
if(IE) {
newX = (event.clientX + document.body.scrollLeft);
newY = (event.clientY + document.body.scrollTop);
distanceX = (newX - currentX); distanceY = (newY - currentY);
currentX = newX; currentY = newY;
whichIt.style.pixelLeft += distanceX;
whichIt.style.pixelTop += distanceY;
if(whichIt.style.pixelTop < document.body.scrollTop)
whichIt.style.pixelTop = document.body.scrollTop;
if(whichIt.style.pixelLeft < document.body.scrollLeft)
whichIt.style.pixelLeft = document.body.scrollLeft;
if(whichIt.style.pixelLeft > document.body.offsetWidth -
document.body.scrollLeft - whichIt.style.pixelWidth - 20)
whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20;
if(whichIt.style.pixelTop > document.body.offsetHeight +
document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop
= document.body.offsetHeight + document.body.scrollTop -
whichIt.style.pixelHeight - 5;
event.returnValue = false;
} else {
whichIt.moveTo(e.pageX-FloatTouchedX,e.pageY-FloatTouchedY);
if(whichIt.left < 0+self.pageXOffset) whichIt.left =
0+self.pageXOffset;
if(whichIt.top < 0+self.pageYOffset) whichIt.top =
0+self.pageYOffset;
if( (whichIt.left + whichIt.clip.width) >=
(window.innerWidth+self.pageXOffset-17)) whichIt.left =
((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;
if( (whichIt.top + whichIt.clip.height) >=
(window.innerHeight+self.pageYOffset-17)) whichIt.top =
((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17;
return false;
}
return false;
}
function dropIt() {
whichIt = null;
if(NS) window.releaseEvents (Event.MOUSEMOVE);
return true;
}
<!-- DRAG DROP CODE -->
if(NS) {
window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);
window.onmousedown = grabIt;
window.onmousemove = moveIt;
window.onmouseup = dropIt;
}
if(IE) {
document.onmousedown = grabIt;
document.onmousemove = moveIt;
document.onmouseup = dropIt;
}
if(NS || IE) action = window.setInterval("heartBeat()",1);
//--> </SCRIPT>
![]() |
||
Comment 2•25 years ago
|
||
document©all and document©layers are both nonstandard© Mozilla supports neither
one -- it supports the standard W3C DOM©
So neither NS nor IE is 1 in the code presented and most of the code is not
exectuted at all© The page needs to be updated to be compliant with the
standard DOM ¥which should also work for IE 5©x or newer, by the way¤©
Over to evangelism
Assignee: rogerl → evangelism
Status: UNCONFIRMED → NEW
Component: Javascript Engine → Evangelism
Ever confirmed: true
OS: Windows 98 → All
QA Contact: pschwartau → zach
Summary: Javascript Floating Menu Does Not Work → [document©layers] Javascript Floating Menu Does Not Work
Comment 3•24 years ago
|
||
Reassigning evangelism bugs to bclary@netscape.com.
Assignee: evangelism → bclary
Assignee | ||
Updated•24 years ago
|
Summary: [document©layers] Javascript Floating Menu Does Not Work → globaltechnovations.com - [document©layers] Javascript Floating Menu Does Not Work
Summary: globaltechnovations.com - [document©layers] Javascript Floating Menu Does Not Work → globaltechnovations.com - [document.layers] Javascript Floating Menu Does Not Work
Assignee | ||
Comment 4•24 years ago
|
||
All Evangelism Bugs are now in the Product Tech Evangelism. See bug 86997 for
details.
Component: Evangelism → US English
Product: Browser → Tech Evangelism
Version: other → unspecified
Comment 5•24 years ago
|
||
www.globaltechnovations.com seems to be dead ("No web site is configured at this
address."). Marking fixed, reopen if site returns and still has the issue
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 6•23 years ago
|
||
Site is back and still has issue.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 7•23 years ago
|
||
/nothing/. URL Specified doesn't work. I use: Mozilla/5.0 (Windows; U; Win 9x
4.90; en-US; rv:1.1a) Gecko/20020608 (SeaMonkey Mozilla1.1Alpha)
Assignee | ||
Comment 8•23 years ago
|
||
page gone and site under construction -> fixed.
Status: REOPENED → RESOLVED
Closed: 24 years ago → 23 years ago
Resolution: --- → FIXED
Updated•10 years ago
|
Product: Tech Evangelism → Tech Evangelism Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•