##// END OF EJS Templates
Fixed: context submenus on the issue list don't show up with IE6....
Jean-Philippe Lang -
r1011:7f3c5169400f
parent child
Show More
@@ -1,52 +1,52
1 1 #context-menu { position: absolute; z-index: 10;}
2 2
3 3 #context-menu ul, #context-menu li, #context-menu a {
4 4 display:block;
5 5 margin:0;
6 6 padding:0;
7 7 border:0;
8 8 }
9 9
10 10 #context-menu ul {
11 11 width:150px;
12 12 border-top:1px solid #ddd;
13 13 border-left:1px solid #ddd;
14 14 border-bottom:1px solid #777;
15 15 border-right:1px solid #777;
16 16 background:white;
17 17 list-style:none;
18 18 }
19 19
20 20 #context-menu li {
21 21 position:relative;
22 22 padding:1px;
23 23 z-index:9;
24 24 }
25 25 #context-menu li.folder ul {
26 26 position:absolute;
27 left:128px; /* IE */
27 left:168px; /* IE6 */
28 28 top:-2px;
29 29 }
30 30 #context-menu li.folder>ul { left:148px; }
31 31
32 32 #context-menu a {
33 33 border:1px solid white;
34 34 text-decoration:none;
35 35 background-repeat: no-repeat;
36 36 background-position: 1px 50%;
37 37 padding: 2px 0px 2px 20px;
38 38 width:100%; /* IE */
39 39 }
40 40 #context-menu li>a { width:auto; } /* others */
41 41 #context-menu a.disabled, #context-menu a.disabled:hover {color: #ccc;}
42 42 #context-menu li a.submenu { background:url("../images/sub.gif") right no-repeat; }
43 43 #context-menu a:hover { border-color:gray; background-color:#eee; color:#2A5685; }
44 44 #context-menu li.folder a:hover { background-color:#eee; }
45 45 #context-menu li.folder:hover { z-index:10; }
46 46 #context-menu ul ul, #context-menu li:hover ul ul { display:none; }
47 47 #context-menu li:hover ul, #context-menu li:hover li:hover ul { display:block; }
48 48
49 49 /* selected element */
50 50 .context-menu-selection { background-color:#507AAA !important; color:#f8f8f8 !important; }
51 51 .context-menu-selection a, .context-menu-selection a:hover { color:#f8f8f8 !important; }
52 52 .context-menu-selection:hover { background-color:#507AAA !important; color:#f8f8f8 !important; }
@@ -1,120 +1,122
1 1 <attach event="ondocumentready" handler="parseStylesheets" />
2 2 <script>
3 3 /**
4 4 * Whatever:hover - V1.42.060206 - hover & active
5 5 * ------------------------------------------------------------
6 6 * (c) 2005 - Peter Nederlof
7 7 * Peterned - http://www.xs4all.nl/~peterned/
8 8 * License - http://creativecommons.org/licenses/LGPL/2.1/
9 9 *
10 10 * Whatever:hover is free software; you can redistribute it and/or
11 11 * modify it under the terms of the GNU Lesser General Public
12 12 * License as published by the Free Software Foundation; either
13 13 * version 2.1 of the License, or (at your option) any later version.
14 14 *
15 15 * Whatever:hover is distributed in the hope that it will be useful,
16 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 18 * Lesser General Public License for more details.
19 19 *
20 20 * Credits and thanks to:
21 21 * Arnoud Berendsen, Martin Reurings, Robert Hanson
22 22 *
23 23 * howto: body { behavior:url("csshover.htc"); }
24 24 * ------------------------------------------------------------
25 25 */
26 26
27 27 var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i,
28 28 currentSheet, doc = window.document, hoverEvents = [], activators = {
29 29 onhover:{on:'onmouseover', off:'onmouseout'},
30 30 onactive:{on:'onmousedown', off:'onmouseup'}
31 31 }
32 32
33 33 function parseStylesheets() {
34 34 if(!/MSIE (5|6)/.test(navigator.userAgent)) return;
35 35 window.attachEvent('onunload', unhookHoverEvents);
36 36 var sheets = doc.styleSheets, l = sheets.length;
37 37 for(var i=0; i<l; i++)
38 38 parseStylesheet(sheets[i]);
39 39 }
40 40 function parseStylesheet(sheet) {
41 41 if(sheet.imports) {
42 42 try {
43 43 var imports = sheet.imports, l = imports.length;
44 44 for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);
45 45 } catch(securityException){}
46 46 }
47 47
48 48 try {
49 49 var rules = (currentSheet = sheet).rules, l = rules.length;
50 50 for(var j=0; j<l; j++) parseCSSRule(rules[j]);
51 51 } catch(securityException){}
52 52 }
53 53
54 54 function parseCSSRule(rule) {
55 55 var select = rule.selectorText, style = rule.style.cssText;
56 56 if(!csshoverReg.test(select) || !style) return;
57 57
58 58 var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1');
59 59 var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo);
60 60 var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];
61 61 var affected = select.replace(/:(hover|active).*$/, '');
62 62 var elements = getElementsBySelect(affected);
63 63 if(elements.length == 0) return;
64 64
65 65 currentSheet.addRule(newSelect, style);
66 66 for(var i=0; i<elements.length; i++)
67 67 new HoverElement(elements[i], className, activators[pseudo]);
68 68 }
69 69
70 70 function HoverElement(node, className, events) {
71 71 if(!node.hovers) node.hovers = {};
72 72 if(node.hovers[className]) return;
73 73 node.hovers[className] = true;
74 74 hookHoverEvent(node, events.on, function() { node.className += ' ' + className; });
75 75 hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });
76 76 }
77 77 function hookHoverEvent(node, type, handler) {
78 78 node.attachEvent(type, handler);
79 79 hoverEvents[hoverEvents.length] = {
80 80 node:node, type:type, handler:handler
81 81 };
82 82 }
83 83
84 84 function unhookHoverEvents() {
85 85 for(var e,i=0; i<hoverEvents.length; i++) {
86 86 e = hoverEvents[i];
87 87 e.node.detachEvent(e.type, e.handler);
88 88 }
89 89 }
90 90
91 91 function getElementsBySelect(rule) {
92 92 var parts, nodes = [doc];
93 93 parts = rule.split(' ');
94 94 for(var i=0; i<parts.length; i++) {
95 95 nodes = getSelectedNodes(parts[i], nodes);
96 96 } return nodes;
97 97 }
98 98 function getSelectedNodes(select, elements) {
99 99 var result, node, nodes = [];
100 100 var identify = (/\#([a-z0-9_-]+)/i).exec(select);
101 101 if(identify) {
102 102 var element = doc.getElementById(identify[1]);
103 103 return element? [element]:nodes;
104 104 }
105 105
106 106 var classname = (/\.([a-z0-9_-]+)/i).exec(select);
107 107 var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
108 108 var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false;
109 109 for(var i=0; i<elements.length; i++) {
110 110 result = tagName? elements[i].all.tags(tagName):elements[i].all;
111 111 for(var j=0; j<result.length; j++) {
112 112 node = result[j];
113 113 if(classReg && !classReg.test(node.className)) continue;
114 114 nodes[nodes.length] = node;
115 115 }
116 116 }
117 117
118 118 return nodes;
119 119 }
120
121 window.parseStylesheets = parseStylesheets;
120 122 </script> No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now