Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: почему не работает конструкция?
 
 автор: flaers   (16.11.2009 в 20:03)   письмо автору
 
 


<script>
function fadeOut(id)
{
 var op = parseInt(document.getElementById(id).style.opacity);
alert(op);
}
</script>

возвращает NaN ((

  Ответить  
 
 автор: Lelik   (16.11.2009 в 20:08)   письмо автору
 
   для: flaers   (16.11.2009 в 20:03)
 

потому, что в атрибуте style элемента с ид id не указано opacity

  Ответить  
 
 автор: flaers   (16.11.2009 в 21:24)   письмо автору
 
   для: Lelik   (16.11.2009 в 20:08)
 

всё указано

  Ответить  
 
 автор: АЯ   (16.11.2009 в 22:19)   письмо автору
 
   для: flaers   (16.11.2009 в 20:03)
 

Начинать объяснение придётся с 1917 года:-)

Во-первых, когда вы хотите узнать параметры стиля какого-либо тега в ТЕКУЩИЙ КОНКРЕТНЫЙ МОМЕНТ ВРЕМЕНИ, то вам надо использовать не JS-объект style, а JS-объект currentStyle (в MSIE) или объект getComputedStyle (для Mozilla).
JS-объект style в обоих типах браузеров выдаст вам то, что непосредственно написано в теге в атрибуте STYLE. Если в данном атрибуте тега ничего о прозрачности не записано (а прозрачность устанавливается во внешнем файле, или в блоке <STYLE></STYLE>, или скриптом), то вы получите неопределённый ответ NaN.

Во-вторых, прозрачность в разных браузерах устанавливается по-разному. В MSIE это filter: opacity, а в Mozilla это opacity (безо всякого filter: спереди). Соответственно, узнавая в MSIE "численное значение" слова filter:, вы естественно получите NaN.

  Ответить  
 
 автор: flaers   (17.11.2009 в 21:05)   письмо автору
 
   для: АЯ   (16.11.2009 в 22:19)
 

всё указано opacity, filter[alpha], -moz-opacity использую оперу

  Ответить  
 
 автор: АЯ   (17.11.2009 в 21:55)   письмо автору
 
   для: flaers   (17.11.2009 в 21:05)
 

>всё указано opacity, filter[alpha], -moz-opacity использую оперу

Это - "во-вторых".
А "во-первых"?

  Ответить  
 
 автор: flaers   (17.11.2009 в 22:15)   письмо автору
 
   для: АЯ   (17.11.2009 в 21:55)
 

надо использовать оба варианта для кроссбраузерной работы?

  Ответить  
 
 автор: АЯ   (18.11.2009 в 00:34)   письмо автору
 
   для: flaers   (17.11.2009 в 22:15)
 

Вы уж определитесь.
То пишете, что "используете оперу", то спрашиваете о кроссбраузерном варианте...

  Ответить  
 
 автор: flaers   (18.11.2009 в 21:36)   письмо автору
 
   для: АЯ   (18.11.2009 в 00:34)
 

ну я тестирую скрипты в опере а если использовать данный скрипт в сети нужен кроссбраузерный вариант?
и еще почему на этом сайте http://easywebscripts.net/javascript/opacity.php конструкция op = (obj.style.opacity)?parseFloat(obj.style.opacity):parseInt(obj.style.filter)/100; а у меня точно такая же нет?!

  Ответить  
 
 автор: АЯ   (19.11.2009 в 01:45)   письмо автору
 
   для: flaers   (18.11.2009 в 21:36)
 

<head>
<script>
var Tu, Td;
function f_Up ()
{
clearTimeout (Td);
var obj = document.getElementById ('P'), opc = obj.lang * 1, brs = (navigator.userAgent.indexOf ('MSIE') >= 0);
if (opc < 100)
   {
   if (brs) obj.style.filter = 'alpha(opacity=' + ++opc + ')'; else obj.style.opacity = .01 * ++opc;
   obj.lang = opc; Tu = setTimeout (f_Up, 20);
   }
else clearTimeout (Tu);
}

function f_Dn ()
{
clearTimeout (Tu);
var obj = document.getElementById ('P'), opc = obj.lang * 1, brs = (navigator.userAgent.indexOf ('MSIE') >= 0);
if (opc > 50)
   {
   if (brs) obj.style.filter = 'alpha(opacity=' + --opc + ')'; else obj.style.opacity = .01 * --opc;
   obj.lang = opc; Td = setTimeout (f_Dn, 20);
   }
else clearTimeout (Td);
}
</script>
</head>
<body>
<img style="filter: alpha(opacity=50); opacity: .5" lang="50" id="P"
src="http://easywebscripts.net/img/logo.png" onmouseover="f_Up ()" onmouseout="f_Dn ()">
</body>

  Ответить  
 
 автор: flaers   (19.11.2009 в 22:09)   письмо автору
 
   для: АЯ   (19.11.2009 в 01:45)
 

это какая-то другаю функция возвращающая прозрачность?
obj.lang * 1

  Ответить  
 
 автор: АЯ   (19.11.2009 в 23:23)   письмо автору
 
   для: flaers   (19.11.2009 в 22:09)
 

Нет.
lang - это атрибут тега <IMG>, используемый в этом скрипте в качестве глобальной переменной, сохраняющей текущее состояние прозрачности:
<img style="filter: alpha(opacity=50); opacity: .5" lang="50" id="P"
src="http://easywebscripts.net/img/logo.png" onmouseover="f_Up ()" onmouseout="f_Dn ()"> 

  Ответить  
 
 автор: flaers   (20.11.2009 в 19:55)   письмо автору
 
   для: АЯ   (19.11.2009 в 23:23)
 

аа может быть так попробую

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования