Показать сообщение отдельно
  #7 (permalink)  
Старый 03.05.2013, 10:55
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от Dim@ Посмотреть сообщение
TRos,
частая ошибка
<script>
function setOpacity() {
  var op = 0; 
  setTimeout(function (){
    if (op > 1) return;
    document.getElementById('big').style.opacity=op;
    op+=0.1
    setTimeout (arguments.callee, 100);
    }, 100);
}
</script>

<div id="big" onClick="setOpacity();" style="opacity:0.1">
blah-blah-blah...
</div>
Если при новом клике цепочку таймаутов от предыдущего клика не прерывать, могут появиться неприятные мелькания, т.к. вызовы от двух кликов начинают бороться друг с другом. Вот ваш же код с небольшим изменением - время увеличено до 10 секунд. Попробуйте кликнуть с интервалом в 3-4 секунды
<script>
function setOpacity() {
  var op = 0; 
  setTimeout(function (){
    if (op > 1) return;
    document.getElementById('big').style.opacity=op;
    op+=0.01 // тут поменял
    setTimeout (arguments.callee, 100);
    }, 100);
}
</script>

<div id="big" onClick="setOpacity();" style="opacity:0.1">
blah-blah-blah...
</div>
Ответить с цитированием