[richfaces-svn-commits] JBoss Rich Faces SVN: r383 - trunk/richfaces/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Thu Apr 12 11:04:22 EDT 2007
Author: a.izobov
Date: 2007-04-12 11:04:22 -0400 (Thu, 12 Apr 2007)
New Revision: 383
Modified:
trunk/richfaces/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
Log:
changing in reposition menu and submenu
Modified: trunk/richfaces/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
===================================================================
--- trunk/richfaces/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-04-12 09:42:23 UTC (rev 382)
+++ trunk/richfaces/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-04-12 15:04:22 UTC (rev 383)
@@ -452,7 +452,13 @@
var windowHeight = win.height;
var windowWidth = win.width;
- var screenOffset = Position.cumulativeOffset(this.element);
+
+// var screenOffset = Position.cumulativeOffset(this.element);
+// if (Element.getStyle(this.element, 'position') == 'absolute') {
+// screenOffset[0] = 0;
+// screenOffset[1] = 0;
+// }
+ var screenOffset = Position.positionedOffset(this.element);
var dim = Element.getDimensions(this.element);
// parent element
@@ -502,8 +508,8 @@
if (!foundPos) {
layerPos = this.calcPosition(listPos[0].jointPoint, listPos[0].direction)
}
- this.layer.style.left = layerPos.left + hOffset + "px";
- this.layer.style.top = layerPos.top + vOffset + "px";
+ this.layer.style.left = layerPos.left + hOffset - this.left + "px";
+ this.layer.style.top = layerPos.top + vOffset - this.top + "px";
Exadel.Menu.Layers.LMPopUp(this.layer.id, false);
Exadel.Menu.Layers.clearLMTO();
@@ -517,6 +523,9 @@
this.event = e;
this.element = Event.findElement(e, 'div');
+ if (this.element.id.indexOf(":folder") == (this.element.id.length -7) ) {
+ this.element = this.element.parentNode;
+ }
this.layer = $(layer);
this.show = function() {
@@ -532,7 +541,12 @@
var windowHeight = body.height;
var windowWidth = body.width;
var scrolls = {top:0, left:0};
- var screenOffset = Position.cumulativeOffset(this.element);
+ var screenOffset = Position.positionedOffset(this.element);
+ var screenOffsetParent = Position.positionedOffset(this.element.parentNode.parentNode);
+ screenOffset[0]+=screenOffsetParent[0];
+ screenOffset[1]+=screenOffsetParent[1];
+ var cumulativeOffset = Position.cumulativeOffset(this.element);
+ var labelOffset = [cumulativeOffset[0] - screenOffset[0], cumulativeOffset[1] - screenOffset[1]];
var dim = Element.getDimensions(this.element);
var top = screenOffset[1] + scrolls.top;
var bottom = top + dim.height;
@@ -551,35 +565,37 @@
var layerTop = top;
if (dir == 0) {
- if (layerLeft + layerdim.width >= windowWidth) {
- var invisibleRight = layerLeft + layerdim.width - windowWidth;
+ if (layerLeft + layerdim.width + labelOffset[0] >= windowWidth) {
+ var invisibleRight = layerLeft + layerdim.width + labelOffset[0] - windowWidth;
layerLeft = left - layerdim.width;
}
- if (layerLeft < 0) {
- if (Math.abs(layerLeft) > invisibleRight) {
+ if (layerLeft + labelOffset[0] < 0) {
+ if (Math.abs(layerLeft + labelOffset[0]) > invisibleRight) {
layerLeft = right;
}
}
- if (layerTop + layerdim.height >= windowHeight) {
- var invisibleBottom = layerTop + layerdim.height - windowHeight;
- var items = this.layer.firstChild.childNodes;
- if (items.length > 0) {
- var lastItem = items[items.length-1];
- var layerOffset = Position.cumulativeOffset(this.layer);
- var itemOffset = Position.cumulativeOffset(lastItem);
- layerTop = top -(itemOffset[1]-layerOffset[1]);
- if (layerTop < 0) {
- if (Math.abs(layerTop) > invisibleBottom) layerTop = top;
- }
- }
-
- }
} else if (dir == 1) {
layerLeft = left - layerdim.width;
}
+ if (layerTop + layerdim.height + labelOffset[1] >= windowHeight) {
+ var invisibleBottom = layerTop + layerdim.height + labelOffset[1] - windowHeight;
+ var items = this.layer.firstChild.childNodes;
+ if (items.length > 0) {
+ var lastItem = items[items.length-1];
+// var layerOffset = Position.cumulativeOffset(this.layer);
+ var itemOffset = Position.positionedOffset(lastItem);
+// layerTop = top -(itemOffset[1]-layerOffset[1]);
+ layerTop = top - itemOffset[1];
+ if (layerTop < 0) {
+ if (Math.abs(layerTop) > invisibleBottom) layerTop = top;
+ }
+ }
+
+ }
+
/* if (layerLeft + layerdim.width >= windowWidth) {
layerLeft = left - layerdim.width + Exadel.Menu.Layers.shadowWidth;
}
More information about the richfaces-svn-commits
mailing list