Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2012, 11:55
Интересующийся
Отправить личное сообщение для x3zone Посмотреть профиль Найти все сообщения от x3zone
 
Регистрация: 30.08.2012
Сообщений: 26

Не получается очистить таймер
Здравствуйте!
Есть такой код.Не получается очистить таймер.left уезжает в бесконечность.Плюс при повторном вызове onclick (клик по диву) анимация ускоряется.Подскажите как это можно исправить?

window.onload = function(){
var contpos = document.getElementById("contpos");
var b1 = document.getElementById("b1");
b1.onclick = myclick1;
}

function myclick1(){
var timer1 = setInterval(animate1,15);
}

function animate1(){
var left = parseInt(contpos.style.left);
left+=10;
contpos.style.left = left + "px";
if(left == 100){
clearInterval(timer1);
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2012, 11:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

x3zone,
Вынести var timer1 - в глобальную область видимости - вне функций
Либо запускать функцию очистки из функции с видимостью var timer1

var timer1;
function myclick1(){
  timer1 = setInterval(animate1,15);
}
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2012, 12:12
Интересующийся
Отправить личное сообщение для x3zone Посмотреть профиль Найти все сообщения от x3zone
 
Регистрация: 30.08.2012
Сообщений: 26

Спасибо!Работает!А как сделать что бы до конца анимации объект не реагировал на повторный вызов события onclick?
Ответить с цитированием
  #4 (permalink)  
Старый 30.08.2012, 12:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

window.onload = function(){
 var contpos = document.getElementById("contpos");
 var b1 = document.getElementById("b1");
 b1.onclick = myclick1;
 }

 var timer1;
 var StopClick=false;
 function myclick1(){
 if(!StopClick){StopClick=true;
 timer1 = setInterval(animate1,15);
 }}

 function animate1(){
 var left = parseInt(contpos.style.left);
 left+=10;
 contpos.style.left = left + "px";
 if(left == 100){
 StopClick=false;
 clearInterval(timer1);
 }
 }
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2012, 13:14
Интересующийся
Отправить личное сообщение для x3zone Посмотреть профиль Найти все сообщения от x3zone
 
Регистрация: 30.08.2012
Сообщений: 26

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацикленный таймер jacko Общие вопросы Javascript 2 01.07.2012 14:32
Очистить INPUT TYPE=file Nitro_Generate Общие вопросы Javascript 17 27.08.2011 14:50
Как сделать таймер как в САР? jelome Элементы интерфейса 0 27.06.2011 12:40
Таймер для слайдера (jQuery) RamPi Events/DOM/Window 0 23.05.2011 14:52
Как два раза вставить таймер alexvost Общие вопросы Javascript 2 08.02.2011 02:28