Плавное появление
Почему код:
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)
}
не работает? |
Отлично работает. Ищите ошибку в другом месте.
<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-свойства представлены строками, а не числами. В случае с минусом браузер старается преобразовать первый элемент в число, а во втором случае спокойно складывает две строки. |
Цитата:
Рабочий код ...
<!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>
|
А как в дальнейшем остановить выцветание или появление, если например нужно остановиться на 0.5 и тд.
Так же кст и в прокрутке страницы вверх или в низ, запустить запускаю, а как остановить хз.
// Функция прокрутки
function ale2(){
window.scrollBy(0, -5);
}
// Функция интервала
id2.onclick = function(){
var interv = window.setInterval("ale2()", 10);
}
}
|
Цитата:
clearInterval(имя интервала времени); } |
Пробовал так, нифига :no:
|
Подскажите пожалуйста, уже весь форум облазил, а ответ не нашел. Думаю тут даже для новичков проблем нету.:)
|
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
|
Как jquery я знаю. Просто с js плохо, решил руку набить.
Твоя функция кстати не делает плавного перехода) |
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>
|
| Часовой пояс GMT +3, время: 06:32. |