[Jifty-commit] r1410 - in jifty/trunk: lib/Jifty share/web/static/js

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jun 30 02:17:38 EDT 2006


Author: trs
Date: Fri Jun 30 02:17:35 2006
New Revision: 1410

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/lib/Jifty/Web.pm
   jifty/trunk/share/web/static/js/context_menu.js
   jifty/trunk/share/web/static/js/jifty_utils.js

Log:
 r13587 at zot:  tom | 2006-06-30 02:16:10 -0400
 Smooth scrolling to show the whole context menu if it's out of the window's viewport has landed!  (At the moment, it is a tad sluggish in Safari.  Not sure why yet.)


Modified: jifty/trunk/lib/Jifty/Web.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Web.pm	(original)
+++ jifty/trunk/lib/Jifty/Web.pm	Fri Jun 30 02:17:35 2006
@@ -47,6 +47,7 @@
     formatDate.js
     jifty.js
     jifty_utils.js
+    jifty_smoothscroll.js
     calendar.js
     dom-drag.js
     halo.js

Modified: jifty/trunk/share/web/static/js/context_menu.js
==============================================================================
--- jifty/trunk/share/web/static/js/context_menu.js	(original)
+++ jifty/trunk/share/web/static/js/context_menu.js	Fri Jun 30 02:17:35 2006
@@ -71,9 +71,10 @@
 
         Element.removeClassName(li, "closed");
         Element.addClassName(li, "open");
-         
+        
         ul.style.display = "block";
         Jifty.ContextMenu.currently_open = ul.id;
+        Jifty.ContextMenu.scrollToShow( ul.id );
     },
 
     hideOpenMenu: function(event) {
@@ -94,6 +95,17 @@
         if (Jifty.ContextMenu.currently_open) {
             Jifty.ContextMenu.hide(Jifty.ContextMenu.currently_open);
         }
+    },
+
+    scrollToShow: function(id) {
+        var ul        = $(id);
+        var y         = Jifty.Utils.findPosY( ul ) + ul.offsetHeight + 10;
+        var scrollTop = Jifty.Utils.getScrollTop();
+        var screen    = Jifty.Utils.findScreenHeight() + scrollTop;
+        var diff      = y - screen;
+        
+        if ( diff > 0 )
+             Jifty.SmoothScroll.scrollTo( scrollTop + diff );
     }
 };
 

Modified: jifty/trunk/share/web/static/js/jifty_utils.js
==============================================================================
--- jifty/trunk/share/web/static/js/jifty_utils.js	(original)
+++ jifty/trunk/share/web/static/js/jifty_utils.js	Fri Jun 30 02:17:35 2006
@@ -35,7 +35,33 @@
       return curtop;
     },
 
-    isMSIE: false
+    isMSIE: false,
+
+    findScreenHeight: function() {
+        if ( window.innerHeight ) {
+            return window.innerHeight;
+        }
+        else {
+            if ( document.documentElement.clientHeight ) {
+                return document.documentElement.clientHeight;
+            }
+            else {
+                if ( document.body.clientHeight ) {
+                    return document.body.clientHeight;
+                }
+            }
+        }
+    },
+
+    getScrollTop: function() {
+        if (document.body && document.body.scrollTop)
+            return document.body.scrollTop;
+        if (document.documentElement && document.documentElement.scrollTop)
+            return document.documentElement.scrollTop;
+        if (window.pageYOffset)
+            return window.pageYOffset;
+        return 0; 
+    }
 };
 
 /* This sets Jifty.Utils.isMSIE to true in IE


More information about the Jifty-commit mailing list