Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   прозрачность элемента (https://javascript.ru/forum/misc/13803-prozrachnost-ehlementa.html)

dmitriymar 14.12.2010 14:30

прозрачность элемента
 
Нашел пример изменения прозрачности элемента-на сайте где выложено всё работает. попробовал у себя -молчит.добавил внешний цикл(мож не успеваю увидеть) результат тот же. скачал страницу сайта оттуда вытянул скрипт -тот же результат.описаний под это дело ноль-не хочу подключать библиотеку -под неё то всё расписанно. что не так?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Новый Документ</title>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
left:373px;
top:34px;
width:208px;
height:243px;
z-index:1;
visibility: visible;
}
-->
</style>
</head>

<body>
<div id="apDiv1">hhiojojikkioii</div>
<script>
var testObj=document.getElementById("apDiv1");
for (j=1;j>10000;j++)
{
for (i=10;i<1;i--)
{
testObj.style.opacity = i/10; -непосредственно изменение прозрачности
testObj.style.filter = 'alpha(opacity=' + i*10 + ')'; -непосредственно изменение прозрачности
}

}
</script>
</body>
</html>

monolithed 14.12.2010 15:17

Цитата:

Сообщение от dmitriymar
Нашел пример изменения прозрачности элемента-на сайте где выложено всё работает

Что мешает самому сделать или это на столько сложно, что проще взять готовое и неизвестно через какое место сделанное?

Цитата:

Сообщение от dmitriymar
добавил внешний цикл(мож не успеваю увидеть)

Опять 25!

Kolyaj 14.12.2010 15:19

Цитата:

Сообщение от monolithed
Опять 25!

Не опять, а наконец-то. Наконец-то попробует сам анимацию сделать, прежде чем других учить.

dmitriymar 14.12.2010 15:25

причём одно к другому? со свойством прозрачности я столкнулся впервые.
то что я собираюсь сделать на основе этого и почему не хочу использовать библиотеки -в принципе дело моё. на сайте выложен вот этот код.
testObj.style.opacity = i/10; -для всего кроме ие
testObj.style.filter = 'alpha(opacity=' + i*10 + ')';-для ие
добавил к себе его в качестве теста-молчит. залез в сайт там этот код используется в рабочем примере.почему у меня молчит понять не могу.точнее почему молчит изменение стиля цсс .ну использую я дримвейвер-ну привычка в нём разметку делать

ksa 14.12.2010 15:30

Цитата:

Сообщение от Kolyaj
Наконец-то попробует сам анимацию сделать, прежде чем других учить

Вот он - момент истины! :D

dmitriymar 14.12.2010 15:41

причём движение и очерёдность отработки к стилю цсс? когда помирать соберусь-приглашу вас. у вас ведь праздник будет)

exec 14.12.2010 16:04

http://studioad.ru/blog/2009-04-16-66

Код, надеюсь, построчно объяснять не придётся, там и так всё элементарно.

Сейчас вы, наверно, опять начнёте нести чушь про "опрос периферии" и "циклы в анимации", как в той теме.

dmitriymar 14.12.2010 16:12

exec,
спс конечно-это я встречал. реализация таже самая
testObj.style.opacity = i/10; -для всего кроме ие
testObj.style.filter = 'alpha(opacity=' + i*10 + ')';-для ие
не могу понять почему этот код у меня не работает. хотя там где откопал этот способ именно этим всё и реализуется. мож работает только с контейнерами с опр заданными свойствами

monolithed 14.12.2010 16:25

Цитата:

Сообщение от dmitriymar
причём одно к другому? со свойством прозрачности я столкнулся впервые.

абсолютно тоже самое только:

<style type="text/css">
div {background: blue; position: absolute; width: 100px; height: 100px;}
</style>

<script type="text/javascript">
window.onload = function(){
    var element = document.getElementsByTagName('div')[0], i = 0, handler = ['mouseover', 'mouseout'], j = handler.length;
    while(j--){
        element['on'+handler[j]] = (function(j){
             return function(){
                 if(handler[j] == handler[0]){
                     if(++i<=30){
                         element.style.opacity = 1/i;
                     }
                     else {
                        return false;
                    }
                 }
                 else {
                     if(--i>=0){
                         element.style.opacity = 1/i;
                          if(i<=0) return false;
                      }
                 }
                 setTimeout(arguments.callee, 20);
             };
        })(j);
    }
};
</script>
<div></div>

PS: писал прямо тут, так что времени на отладку и IE нет, зато глюки наверное есть, но это не суть важно главное примерный алгоритм)).

ksa 14.12.2010 16:30

dmitriymar, т.е. использование setTimeout() ты там так и не заметил? :D

Цитата:

Сообщение от dmitriymar
когда помирать соберусь-приглашу вас. у вас ведь праздник будет)

Не льсти себе... Некоторые вообще в одиночестве умирают... ;)


Часовой пояс GMT +3, время: 09:17.