не могу нормально поменять css
изначально opacity = 0.7; после выполнения функции должно быть 1.0, но становится 0.3
function opp()
{
er=document.getElementById('bn').style.opacity;
er=er+0.3;
document.getElementById('bn').style.opacity=er;
setTimeout("opp()", 200);
}
|
вот код полностью
<!DOCTYPE HTML >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id ="col">
<h1>заголовок</h1>
</div>
<img id="bn" src="2.jpg">
<form>
<p><input type="button" id="Yo" value=" Нажми меня нежно " onClick="opp()" ></p>
</form>
<script>
var er=0;
function opp()
{
er=document.getElementById('bn').style.opacity;
er=er+0.3;
document.getElementById('bn').style.opacity=er;
setTimeout("opp()", 200);
}
</script>
</body>
</html>
|
style возвращает inline-стиль, если я ничего не перепутал. Если opacity задано не с помощью атрибута style='opacity: .7', а из внешней таблицы стилей, то в er у вас попадает пустая строка. Затем к ней прибавляется (сложением строк, обратите внимание) 0.3 и в результате, очевидно, получается 0.3.
Исправить это можо, например, так:
function opp()
{
var elem = document.getElementById('bn');
var er=getComputedStyle(elem, '').opacity;
er = +er + 0.3; // приводим строку к числу и складываем
elem.style.opacity = er;
}
|
Спасибо за ответ, вроде разобрался
|
| Часовой пояс GMT +3, время: 12:03. |