узнать св-во элемента
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title> <style> #descr {visibility:hidden} </style> </head> <body> <div id="descr">asdasd</div> <script> alert(document.getElementById("descr").style.visibility) </script> </body> </html> В css элемент имеет св-во #descr{visibility:hidden} пытаюсь его узнать alert(document.getElementById("descr").style.visib ility) - почему-то выводится пустота |
daima,
вроде это считается значение по умолчанию - css свойство поэтому и выводится пустота - для наглядности: <html> <head> <title> New Document </title> <style> #descr {visibility:hidden} </style> </head> <body> <div id="descr">asdasd</div> <script> document.getElementById("descr").style.visibility = "visible"; setTimeout(function(){document.getElementById("descr").style.visibility = "";}, 5000); </script> </body> </html> данный код устанавливает div-у значение visible, а через 5 секунд значение по умолчанию (значение указанное в css) |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title> <style> #descr {visibility:visible} </style> </head> <body> <div id="descr">asdasd</div> <script> alert(document.getElementById("descr").style.visibility) </script> </body> </html> Так тоже пусто |
daima,
JavaScript css свойство считает по умолчанию - поэтому и пусто |
function getStyle(el,styleProp){ var x = document.getElementById(el); if (x.currentStyle) var y = x.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); return y; } Вот тут подробнее. |
daima, в данном случае лучше использовать display
ну а если нужен все таки visibility, то, например, создать невидимое поле и записывать в его value значение установленного свойства visibility а в принципе можно самим JS устанавливать нужные значения данного свойства, а потом спокойно считывать... <html> <head> <title> New Document </title> </head> <body> <div id="descr">asdasd</div> <script> document.getElementById("descr").style.visibility = "hidden"; alert(document.getElementById("descr").style.visibility); </script> </body> </html> |
Вот тут подробнее. - в ие 7-8 не работает
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title> <style> #descr {visibility:hidden;} div:hover #descr{visibility:visible;} </style> </head> <body> <div onmouseout="info()">наведи <div id="descr">asdasd</div> </div> <script> function info(){ var el = document.getElementById("descr"); var style = el.currentStyle || window.getComputedStyle(el, null); if(style.visibility=="hidden") el.innerHTML="пусто"; } </script> </body> </html> Собственно говоря что хочу - после того как мы убираем мышь с надписи наведи и окно descr закрывается текст в нем менялся. Но чего-то не выходит |
Тогда вы что-то совсем намудрили...
Вот так не проще? <!DOCTYPE HTML> <html> <head> <title> New Document </title> <style> #descr {visibility:hidden;} </style> </head> <body> <div onmouseout="mOut()" onmouseover="mOver()" style="background-color: red; width: 300px;">наведи <div id="descr" style="background-color: blue; width: 200px;">Before</div> </div> <script> function mOver(){ var el = document.getElementById("descr"); el.style.visibility = "visible"; } function mOut(){ var el = document.getElementById("descr"); el.style.visibility = "hidden"; el.innerHTML="After"; } </script> </body> </html> |
код не рабочий: Before сразу же заменяется на After наведении на аНаАаВаЕаДаИ. А должен только после того как мы убрали с аНаАаВаЕаДаИ мыш и descr закрылся. закрытие descr происходит только когда мыш уходит и с него и с аНаАаВаЕаДаИ. Если непонятно - выложу полный пример
|
Цитата:
Давайте по шагам что произошло. 1. Вы навелись снизу накрасный див. В результате ... 2. Сработал onmouseover. Который 3. Сделал видимым синий див. Синий див оказался под мышью и... 4. Cработал onmouseout, который заменил значение на after. Если бы вы попробовали сделать тоже самое с правого края( красный див больше синего на 100px), или сверху, то не говорили бы что код не работает. Закройте первый див до открытия второго и будет вам счастье. |
Часовой пояс GMT +3, время: 02:15. |