Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2012, 14:00
Интересующийся
Отправить личное сообщение для Lestat621 Посмотреть профиль Найти все сообщения от Lestat621
 
Регистрация: 17.12.2011
Сообщений: 17

Плавное появление
Почему код:
function opacity(element, speed){
	setInterval(function(){
		if(!element.style.opacity){
			element.style.opacity = 1;
		}
	        element.style.opacity = element.style.opacity - 0.08;
	}, speed)
}

Работает. А код:
function opacity(element, speed){
	setInterval(function(){
		if(!element.style.opacity){
			element.style.opacity = 0;
		}
	        element.style.opacity = element.style.opacity + 0.08;
	}, speed)
}

не работает?
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2012, 14:29
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Отлично работает. Ищите ошибку в другом месте.
<div style="background-color: red">HELLO</div>
<script>
function opacity(element, speed){
    setInterval(function(){
        if(!element.style.opacity){
            element.style.opacity = 0;
        }
            element.style.opacity = element.style.opacity + 0.08;
    }, speed)
}
opacity(document.getElementsByTagName('div')[0], 1000);
</script>

Вероятно, после исполнения кода второй раз получается что-то типа opacity = '0.080.08'. Потому что style-свойства представлены строками, а не числами. В случае с минусом браузер старается преобразовать первый элемент в число, а во втором случае спокойно складывает две строки.

Последний раз редактировалось Sanda, 14.12.2012 в 14:34.
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2012, 23:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от Sanda
Отлично работает.
Код нерабочий, но вы правильно указали причину, почему он не работает.
Рабочий код ...
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
</head>

<body>
<div style="background-color: red">HELLO</div>
<script>
function opacity(element, speed){
    setInterval(function(){
        if(+element.style.opacity>1||!element.style.opacity){
            element.style.opacity = 0;
        }
        element.style.opacity = +element.style.opacity + 0.08;
    }, speed)
}
opacity(document.getElementsByTagName('div')[0], 1000);
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2012, 18:26
Интересующийся
Отправить личное сообщение для Lestat621 Посмотреть профиль Найти все сообщения от Lestat621
 
Регистрация: 17.12.2011
Сообщений: 17

А как в дальнейшем остановить выцветание или появление, если например нужно остановиться на 0.5 и тд.

Так же кст и в прокрутке страницы вверх или в низ, запустить запускаю, а как остановить хз.

// Функция прокрутки
			function ale2(){ 
				window.scrollBy(0, -5);
			}
			// Функция интервала
			id2.onclick = function(){
				var interv = window.setInterval("ale2()", 10);
				}
			}
Ответить с цитированием
  #5 (permalink)  
Старый 18.12.2012, 23:37
Аватар для Margarita
Аспирант
Отправить личное сообщение для Margarita Посмотреть профиль Найти все сообщения от Margarita
 
Регистрация: 14.09.2012
Сообщений: 83

Сообщение от Lestat621 Посмотреть сообщение
А как в дальнейшем остановить выцветание или появление, если например нужно остановиться на 0.5 и тд.
[/JS]
если((элемент).прозрачность == 0.5) {
clearInterval(имя интервала времени);
}
Ответить с цитированием
  #6 (permalink)  
Старый 18.12.2012, 23:46
Интересующийся
Отправить личное сообщение для Lestat621 Посмотреть профиль Найти все сообщения от Lestat621
 
Регистрация: 17.12.2011
Сообщений: 17

Пробовал так, нифига
Ответить с цитированием
  #7 (permalink)  
Старый 19.12.2012, 21:36
Интересующийся
Отправить личное сообщение для Lestat621 Посмотреть профиль Найти все сообщения от Lestat621
 
Регистрация: 17.12.2011
Сообщений: 17

Подскажите пожалуйста, уже весь форум облазил, а ответ не нашел. Думаю тут даже для новичков проблем нету.
Ответить с цитированием
  #8 (permalink)  
Старый 20.12.2012, 08:37
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

function opacity(element, speed, max_opac){
    I=window.setInterval(function(){
        if(+element.style.opacity>max_opac||!element.style.opacity){
            element.style.opacity = max_opac; window.clearInterval(I)
        }else{element.style.opacity = +element.style.opacity + 0.08;
		}
		
    }, speed)
}
opacity(element,1000,0.5);
//где третий аргумент нужное значение прозрачности 
// может как-то так

// а вообще на jQuery это слишком даже просто сделать 
$(element).animate({opacity:0.5},2000) // то есть за 2 секунды элемент увеличит непрозрачность до 0.5

Последний раз редактировалось bushstas, 20.12.2012 в 08:43.
Ответить с цитированием
  #9 (permalink)  
Старый 20.12.2012, 21:17
Интересующийся
Отправить личное сообщение для Lestat621 Посмотреть профиль Найти все сообщения от Lestat621
 
Регистрация: 17.12.2011
Сообщений: 17

Как jquery я знаю. Просто с js плохо, решил руку набить.
Твоя функция кстати не делает плавного перехода)
Ответить с цитированием
  #10 (permalink)  
Старый 21.12.2012, 01:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Lestat621,
Вариант с остановкой ... кликнуть по надписи.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>

<body>
<div style="background-color: red">click</div>
<script>
var interv,id2 ;
id2 = document.getElementsByTagName('div')[0];
function opacity(element, speed){
  interv =  setInterval(function(){
        if(+element.style.opacity>1||!element.style.opacity){
            element.style.opacity = 0;
        }
        element.style.opacity = +element.style.opacity + 0.08;
    }, speed)
}

id2.onclick = function(){
				clearInterval(interv)
				}


opacity(id2, 1000);
</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Планое появление и плавное затухание rusbody jQuery 3 15.10.2012 14:46
Плавное исчезновение и появление изображения Surlik jQuery 9 17.03.2012 14:27
Как сделать плавное появление ? saturn Элементы интерфейса 5 12.11.2011 03:16
Плавное появление изображений при загрузке страницы Imdoode jQuery 7 28.06.2011 10:48
Плавное появление сайта... hobbystudio jQuery 8 25.11.2010 22:36