@@ -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:1 |
|
|
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