Autor | Zpráva | ||
---|---|---|---|
neznalek Profil * |
#1 · Zasláno: 4. 9. 2009, 18:27:34
Čafte, můžu si z nějaký stránky stáhnout menu v css a k tomu tenhle behavior:
<attach event="ondocumentready" handler="parseStylesheets" /> <script language="JScript"> /** * HOVER - V1.00.031224 - whatever:hover in IE * --------------------------------------------- * Peterned - http://www.xs4all.nl/~peterned/ * (c) 2003 - Peter Nederlof * * howto: body { behavior:url("csshover.htc"); } * --------------------------------------------- */ var CSSBuffer, doc = window.document; function parseStylesheets() { var rules, sheet, sheets = doc.styleSheets; var bufferIndex = sheets.length; var head = doc.getElementsByTagName('head')[0]; var buffer = doc.createElement('style'); buffer.setAttribute('media', 'screen'); buffer.setAttribute('type', 'text/css'); head.appendChild(buffer); CSSBuffer = sheets[bufferIndex]; for(var i=0; i<sheets.length -1; i++) { sheet = sheets[i]; if(!sheet.media || sheet.media == 'screen') { rules = sheet.rules; for(var j=0; j<rules.length; j++) { parseCSSRule(rules[j]); } } } } function parseCSSRule(rule) { var select = rule.selectorText, style = rule.style.cssText; if(!select || !style || select.indexOf(':hover') < 0) return; var newSelect = select.replace(/\:hover/g, '.onHover'); CSSBuffer.addRule(newSelect, style); var affected = select.replace(/\:hover.*$/g, ''); var elements = getElementsBySelect(affected); for(var i=0; i<elements.length; i++) { if(elements[i].nodeName == 'A') continue; new HoverElement(elements[i]); } } /** * HoverElement * ------------------------- * applies the hover */ function HoverElement(element) { if(element.isHoverElement) return; element.isHoverElement = true; element.attachEvent('onmouseover', function() { element.className += ' onHover'; }); element.attachEvent('onmouseout', function() { element.className = element.className.replace(/onHover/g, ''); }); } /** * domFinder * ----------------------------------- * returns list of elements based on css selector */ function getElementsBySelect(rule) { var nodeList = [doc], sets = rule.split(' '); for(var i=0; i<sets.length; i++) { nodeList = domFinder.filterNodes(sets[i], nodeList); } return nodeList; } var domFinder = { findNodes:function(tag, docs) { var res, nodes = []; for(var i=0; i<docs.length; i++) { res = docs[i].getElementsByTagName(tag); for(var j=0; j<res.length; j++) nodes[nodes.length] = res[j]; } return nodes; }, filterNodes:function(select, docs) { var filtered = [], nodes,rule,atr,s = (/#|\./).exec(select); if(!s) return this.findNodes(select, docs); nodes = this.findNodes((rule = select.split(s))[0], docs); atr = (s == '#')? 'id':'className'; for(var i=0; i<nodes.length; i++) { if(new RegExp('(^|\\s)' + rule[1] + '(\\s|$)').exec(nodes[i][atr])) filtered[filtered.length] = nodes[i]; } return filtered; } } </script> Není to něco nelegálního, porušení autorských práv nebo tak něco? A k čemu slouží přesně ten behavior? Děkuju |
||
panther Profil |
#2 · Zasláno: 4. 9. 2009, 19:13:32
neznalek
„Není to něco nelegálního, porušení autorských práv nebo tak něco? “ nemyslím si. „A k čemu slouží přesně ten behavior?“ tipuji to na hover u jiných elementů než odkazů v IE. Na stránce, odkud chceš menu i s tímto scriptem stahovat, by to mohlo být napsáno. |
||
neznalek Profil * |
#3 · Zasláno: 5. 9. 2009, 16:33:53
Já jenom že to není stánka o programování, na který je tohle jakoby opensource menu, ale já to našel normálně na nějaký webový stránce, kterou někdo vytvořil a hodilo by se mi to použít.
|
||
Bubák Profil |
#4 · Zasláno: 5. 9. 2009, 17:24:48
Však ve zdrojáku je zakomentovaný kontakt na autora, na stránce http://www.xs4all.nl/~peterned/ si všechno najdeš a bokud nevládneš angličtinou, můžeš použít google translator.
Chce to více používat hlavu. |
||
Časová prodleva: 15 let
|
0