Changeset 122
- Timestamp:
- 12/26/05 13:24:30
- Files:
-
- qPloneDropDownMenu/trunk/HISTORY.txt (modified) (1 diff)
- qPloneDropDownMenu/trunk/skins/qPloneDropDownMenu/csshover.htc.dtml (modified) (9 diffs)
- qPloneDropDownMenu/trunk/skins/qPloneDropDownMenu/drop_down.css.dtml (modified) (1 diff)
- qPloneDropDownMenu/trunk/version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qPloneDropDownMenu/trunk/HISTORY.txt
r121 r122 1 0.1.8 2 3 * optimized page load time for IE 4 1 5 0.1.7 2 6 qPloneDropDownMenu/trunk/skins/qPloneDropDownMenu/csshover.htc.dtml
r121 r122 17 17 var currentSheet, doc = window.document; 18 18 var csshover_nodes = getElementsByClassName("csshover", doc); 19 var csshover_rules = []; 20 var DEBUG = false, styles = "", parseCSSRulecounter=0; 19 21 20 22 function parseStylesheets() { … … 22 24 for(var i=0; i<l; i++) 23 25 parseStylesheet(sheets[i]); 26 if(DEBUG) alert(styles) 24 27 } 25 28 26 29 function parseStylesheet(sheet) { 30 if(DEBUG) window.status += '|'; 27 31 // if(sheet.href && sheet.href.indexOf('/ploneCustom.css') == -1) return; 28 32 var l, rules, imports; … … 37 41 38 42 function parseCSSRule(rule) { 43 if(DEBUG) if((parseCSSRulecounter++)%10 == 0) window.status += '.'; 39 44 var select = rule.selectorText, style = rule.style.cssText; 40 45 if(style.replace(/ /, "") == "") return; … … 50 55 affected = affected.replace(/^.*([ ]|^)(([^ ]*)\.csshover)/i, '$2'); 51 56 52 // if class-affected pair processed return; 57 if(!csshover_rules[className + ',' + affected]) { 58 var elements = getElementsBySelect(affected); 59 if(DEBUG) window.status += " "+elements.length; 60 styles += "" + elements.length + ": " + affected + '\n' 61 for(var i=0; i<elements.length; i++) 62 HoverElement(elements[i], className); 63 csshover_rules[className + ',' + affected] = true; 64 } 53 65 54 var elements = getElementsBySelect(affected);55 for(var i=0; i<elements.length; i++)56 HoverElement(elements[i], className);57 //add class-affected pair to processed;58 66 } 59 67 … … 73 81 parts = rule.split(' '); 74 82 for(var i=0; i<parts.length; i++) { 75 nodes = getSelectedNodes(parts[i], nodes );83 nodes = getSelectedNodes(parts[i], nodes, i==0); 76 84 } 77 85 return nodes; 78 86 } 79 87 80 function arrayHasElement(a, el) {88 function arrayHasElement(a, el) { 81 89 var l = a.length; 82 90 for(var i=0; i<l; i++) if(a[i] == el) return true; … … 84 92 } 85 93 86 function getSelectedNodes(select, elements ) {87 var result, node, nodes = [];94 function getSelectedNodes(select, elements, includeRoot) { 95 var element, result, node, nodes = []; 88 96 var classname = (/\.([a-z0-9_-]+)/i).exec(select); 89 97 if(classname) classname_re = new RegExp('\\b' + classname[1] + '\\b'); … … 92 100 ell = elements.length; 93 101 for(var i=0; i<ell; i++) { 94 result = elements[i].getElementsByTagName(tagName); 102 element = elements[i] 103 if(includeRoot) 104 if((tagName=='*') || (element.nodeName == tagName)) result = [element] 105 else result = [] 106 else result = element.getElementsByTagName(tagName); 95 107 rel = result.length; 96 108 for(var j=0; j<rel; j++) { … … 98 110 if((identify && node.id != identify[1]) || (classname && !(classname_re.exec(node.className))) || arrayHasElement(nodes, node)) continue; 99 111 nodes[nodes.length] = node; 100 }101 if(classname && (classname_re.exec(elements[i].className)) && !arrayHasElement(nodes, elements[i])) {102 nodes[nodes.length] = elements[i];103 112 } 104 113 } … … 110 119 list = (parentElement || doc.body).getElementsByTagName('*'); 111 120 for(var i = 0; i < list.length; i++) { 112 if(list[i].className.match(new RegExp('(^|\\s)' + className + '(\\s|$)'))) { 113 result[result.length] = list[i]; 114 } 121 if(list[i].className.match(new RegExp('(^|\\s)' + className + '(\\s|$)'))) result[result.length] = list[i]; 115 122 } 116 123 return result qPloneDropDownMenu/trunk/skins/qPloneDropDownMenu/drop_down.css.dtml
r121 r122 37 37 38 38 #portal-globalnav li ul li { 39 width: 100%;40 display: block;41 float: left;42 position: static;39 width: 100%; 40 display: block; 41 float: left; 42 position: static; 43 43 } 44 44 qPloneDropDownMenu/trunk/version.txt
r121 r122 1 0.1. 71 0.1.8
