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
когда помирать соберусь-приглашу вас. у вас ведь праздник будет)

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

monolithed 14.12.2010 16:33

relativeTarger кстати, не первый день на форуме, почему код не отформатировали?

dmitriymar 14.12.2010 16:33

monolithed,спс конечно но не то что спрашивал
хорошо поставлю вопрос по другому -почему конструкция
<div id="apDiv1">hhiojojikkioii</div>
<script>
var testObj=document.getElementById("apDiv1");
testObj.style.opacity = 0.5;
</script>
срабатывает,а изменение в цикле прозрачности- нет. хотя при прокручивании цикла должна быть полной-тоесть надписи не должно быть вообще видно. на вопрос что идёт к абсолютной непрозрачности в цикле-менял как на увелечиние так и на уменьшение значения прозрачности-результат один -не работает
#apDiv1 {
position:absolute;
left:373px;
top:34px;
width:208px;
height:243px;
z-index:1;
visibility: visible;
}
предупрежу ответ не срабатывает в фф и т.д

dmitriymar 14.12.2010 16:35

ksa,
заметил я там таймер -но дело не в нём. ну не хочеш на похороны ко мне-тогда я к тебе на могилку заскочу:dance:

ksa 14.12.2010 16:40

Цитата:

Сообщение от dmitriymar
почему конструкция
..
предупрежу ответ не срабатывает в фф и т.д

С чего ты взял что она не срабатывает? :)

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
#apDiv1 {
	position:absolute;
	left:100px;
	top:10px;
	width:300px;
	height:243px;
	z-index:1;
	visibility: visible;
	background-color: red;
}
</style>
<script type="text/javascript">
</script>
</head>
<p>Пример текста Пример текста Пример текста</p>
<p>Пример текста Пример текста Пример текста</p>
<p>Пример текста Пример текста Пример текста</p>
<p>Пример текста Пример текста Пример текста</p>
<div id="apDiv1">hhiojojikkioii</div>
<script>
	var testObj=document.getElementById("apDiv1");
	testObj.style.opacity = 0.5;
</script>
</body>
</html>


Все таки прозрачно...

ksa 14.12.2010 16:40

Цитата:

Сообщение от dmitriymar
тогда я к тебе на могилку заскочу

Я уже популярен? :D Цветы, цветы не забудь... Кутью думаю тебе дадут жевнуть... ;)

dmitriymar 14.12.2010 16:45

ksa,
я отредактировал пред сообобщение о несрабатывании-клава отошла когда то писал и не заметил что сообщение потеряло смысл -тот какой вкладывал.Я ещё и шампанское захвачу-устрою там себе праздник)

dmitriymar 14.12.2010 16:50

вобщем момент-почему это не работает?
<div id="apDiv1">hhiojojikkioii</div>
<script>
var testObj=document.getElementById("apDiv1");
for (i=10;i>1;i--)
{
testObj.style.opacity = i/10;

}
</script>

<div id="apDiv1">hhiojojikkioii</div>
<script>
var testObj=document.getElementById("apDiv1");
for (i=1;i<10;i++)
{
testObj.style.opacity = i/10;

}
</script>

по идее после выполнения либо того либо того кода в одном из вариантов я должен получить прозрачный элемент

monolithed 14.12.2010 16:50

Цитата:

Сообщение от ksa
Я уже популярен? Цветы, цветы не забудь... Кутью думаю тебе дадут жевнуть...

Цитата:

Сообщение от dmitriymar
ksa,
я отредактировал пред сообобщение о несрабатывании-клава отошла когда то писал и не заметил что сообщение потеряло смысл -тот какой вкладывал.Я ещё и шампанское захвачу-устрою там себе праздник)

нашли чем над чем шутить:stop:

dmitriymar код нужно форматировать!

ksa 14.12.2010 16:50

Цитата:

Сообщение от dmitriymar
Я ещё и шампанское захвачу-устрою там себе праздник)

Я таки посмеюсь с небес как дуркует какой-то старик... :D

monolithed 14.12.2010 16:51

dmitriymar зачем цикл? Для вашей задачи и CSS подойдет тогда

dmitriymar 14.12.2010 16:51

всё разобрался-в цикле была ошибка-вместо >поставил <

dmitriymar 14.12.2010 16:53

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

dmitriymar 14.12.2010 17:07

Цитата:

Сообщение от ksa
Я таки посмеюсь с небес как дуркует какой-то старик...

из Ада!!

x-yuri 14.12.2010 20:25

dmitriymar, а ты, кстати, себя к какому типу программистов причисляешь? Они начинаются с 13:53...

dmitriymar 14.12.2010 21:47

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

bushstas 14.12.2010 23:22

Вложений: 1
Я сам делал такое но понял что все давно изобретено, используй плагин jQuery, одной строкой сможешь делать анимацию прозрачности

найди в инете данный скрипт, скачай, прикрепи в хэде

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>


$("#element_id").animate({opacity: 0}, 400, function(){
// здесь функция по завершению анимации если надо
 });


данное значит элемент с таким то айди плавно исчезнет (прозрачность перейдет в ноль) со скоростью 400

$("#element_id").animate({opacity: 1}, 1000, function(){
// здесь функция по завершению анимации если надо
 });


данное значит элемент с таким то айди плавно появиться (прозрачность перейдет в 1) со скоростью 1000

x-yuri 15.12.2010 00:25

Цитата:

Сообщение от dmitriymar
но мне приятно что ты потратил время нашел ролик для меня

не льсти себе ;)

dmitriymar 15.12.2010 09:53

bushstas,
а я о джиквери будтобы в первый раз слышу... читать умеем? там было написано что не хочу использовать библиотеки принципиально. и не могу понять в чём ошибка-ошибка оказалась синтаксическая такаяже могла и в джиквери возникнуть и момент в том что некоторые вещи из описанных в учебниках и т.д -со временем переставали работать-вот и интересовало что не так
.
Цитата:

Сообщение от x-yuri
Сообщение от dmitriymar
но мне приятно что ты потратил время нашел ролик для меня

не льсти себе

ну хорошо ты нашел ролик для себя и о себе)перескажи что там-нехочу время тратить на его просмотр


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