Created
September 30, 2012 02:20
-
-
Save zhuzhuaicoding/3805667 to your computer and use it in GitHub Desktop.
a snippet for getW/H from a none displayed elemment by http://js8.in/781.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function getCss(elem, css){ | |
| if (window.getComputedStyle) { | |
| return window.getComputedStyle(elem, null)[css]; | |
| }else if (elem.currentStyle) { | |
| return elem.currentStyle[css]; | |
| }else { | |
| return elem.style[css]; | |
| } | |
| } | |
| function getWH(dom){ | |
| var get = function(elem){ | |
| var wh = {}; | |
| 'Width Height'.replace(/[^ ]+/g, function(i){ | |
| var a = i.toLowerCase(); | |
| wh[a] = elem['offset' + i] || elem['client' + i]; | |
| }); | |
| return wh; | |
| }; | |
| if (getCss(dom, 'display') === 'none') { | |
| var nDom = dom.cloneNode(true); | |
| nDom.style.position = 'absolute'; | |
| nDom.style.top = '-3000px'; | |
| nDom.style.display = 'block'; | |
| document.getElementsByTagName('body')[0].appendChild(nDom); | |
| var wh = get(nDom); | |
| nDom.parentNode.removeChild(nDom); | |
| return wh; | |
| } | |
| return get(dom); | |
| } | |
| //test | |
| console.log(getWH(document.getElementById('content'))); | |
| var domA = document.createElement("a"), _ostyle = "position:absolute;z-index:999999;width:92px;height:22px;position:absolute;display:none;"; | |
| domA.setAttribute("style", _ostyle); | |
| domA.style.cssText = _ostyle; | |
| domA.setAttribute("href", "javascript:void(0);"); | |
| document.getElementsByTagName('body')[0].appendChild(o); | |
| console.log(getWH(domA)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment