aboutsummaryrefslogtreecommitdiff
path: root/views/default/js
diff options
context:
space:
mode:
authorpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-01-23 13:39:38 +0000
committerpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-01-23 13:39:38 +0000
commite4fab2b9f5320d064f68ac16f6103f2ed11c0b86 (patch)
treeaaae06e48a7fdad523f76d62ed3efa46274d1342 /views/default/js
parent1c41df46a1d678b2d1ef2bdc0c71a5d5288055b2 (diff)
downloadelgg-e4fab2b9f5320d064f68ac16f6103f2ed11c0b86.tar.gz
elgg-e4fab2b9f5320d064f68ac16f6103f2ed11c0b86.tar.bz2
new cross-browser js toolbar menu
git-svn-id: https://code.elgg.org/elgg/trunk@2606 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views/default/js')
-rw-r--r--views/default/js/initialise_elgg.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/views/default/js/initialise_elgg.php b/views/default/js/initialise_elgg.php
index 38f25673e..390b9cf94 100644
--- a/views/default/js/initialise_elgg.php
+++ b/views/default/js/initialise_elgg.php
@@ -209,3 +209,78 @@ jQuery.cookie = function(name, value, options) {
return cookieValue;
}
};
+
+// ELGG TOOLBAR MENU
+$.fn.elgg_topbardropdownmenu = function(options) {
+
+ options = $.extend({speed: 350}, options || {});
+
+ this.each(function() {
+
+ var root = this, zIndex = 5000;
+
+ function getSubnav(ele) {
+ if (ele.nodeName.toLowerCase() == 'li') {
+ var subnav = $('> ul', ele);
+ return subnav.length ? subnav[0] : null;
+ } else {
+
+ return ele;
+ }
+ }
+
+ function getActuator(ele) {
+ if (ele.nodeName.toLowerCase() == 'ul') {
+ return $(ele).parents('li')[0];
+ } else {
+ return ele;
+ }
+ }
+
+ function hide() {
+ var subnav = getSubnav(this);
+ if (!subnav) return;
+ $.data(subnav, 'cancelHide', false);
+ setTimeout(function() {
+ if (!$.data(subnav, 'cancelHide')) {
+ $(subnav).slideUp(options.speed);
+ }
+ }, 200);
+ }
+
+ function show() {
+ var subnav = getSubnav(this);
+ if (!subnav) return;
+ $.data(subnav, 'cancelHide', true);
+ $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
+ if (this.nodeName.toLowerCase() == 'ul') {
+ var li = getActuator(this);
+ $(li).addClass('hover');
+ $('> a', li).addClass('hover');
+ }
+ }
+
+ $('ul, li', this).hover(show, hide);
+ $('li', this).hover(
+ function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
+ function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
+ );
+
+ });
+
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+