Не могу получить доступ к свойствам селектора CSS из Javascript - PullRequest
5 голосов
/ 26 июня 2009

Вот очень простой вопрос: почему функция finishLoading () в приведенном ниже коде не может получить доступ к свойству opacity для CSS-селектора #myStyle? В предупреждении ничего не отображается, и я убедился, что для свойства opacity установлено значение false.

Большое спасибо!

<html>
<head>
<style type="text/css">
<!--
#myStyle
{
    opacity: 0.50;
}
-->
</style>

<script type="text/javascript">
<!--
function finishedLoading()
{
    alert(document.getElementById('myStyle').style.opacity);
}
-->
</script> 
</head>
<body onload="finishedLoading();">

    <div id="myStyle">
        hello
    </div>

</body>
</html>

Ответы [ 5 ]

5 голосов
/ 26 июня 2009

Вы можете получить значения, установленные через класс, только после их вычисления.

var oElm = document.getElementById ( "myStyle" );
var strValue = "";
if(document.defaultView && document.defaultView.getComputedStyle)
{
strValue = document.defaultView.getComputedStyle(oElm, null).getPropertyValue("-moz-opacity");
}
else if(oElm.currentStyle)    // For IE
{
strValue = oElm.currentStyle["opacity"];
}

alert ( strValue );
2 голосов
/ 26 июня 2009

Проблема в том, что element.style.opacity только хранит значения, которые установлены внутри атрибута style элемента. Если вы хотите получить доступ к значениям стилей из других таблиц стилей, взгляните на quirksmode .

Приветствия

0 голосов
/ 26 июня 2009

Непрозрачность должна быть числом, а не логическим значением. Это работает в любом другом браузере?

0 голосов
/ 26 июня 2009

эта ссылка поможет

http://www.quirksmode.org/js/opacity.html

function setOpacity(value) {
    testObj.style.opacity = value/10;
    testObj.style.filter = 'alpha(opacity=' + value*10 + ')';
}

непрозрачность для Mozilla и Safari, фильтр для Explorer. значение варьируется от 0 до 10.

0 голосов
/ 26 июня 2009

Я предлагаю вам взглянуть на jQuery и некоторые посты на Learning jQuery , это сделает выполнение таких вещей очень простым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...