Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.10.2017, 21:41
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

рони,
а не могли бы подсказать ещё одну вещь с setTimeout - как обнулить счетчик? то есть, есть код, который написал выше (с setTimeout()). Он двигает блок с определенным интервалом. А при клике на кнопки вперед/назад, получается такая некрасивая вещь, когда слайд сразу после клика переходит на другую, так как после клика таймер не обнуляется.
Пробовал в функциях клика по "вперед/назад" в конце писать clearTimeout() - результата нет.
Ответить с цитированием
  #12 (permalink)  
Старый 10.10.2017, 01:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Булат Азат улы,
$(document).ready(function(){
var timer;
...click(function(){clearTimeout(timer) 

//...
timer =setTimeout(function(){
Ответить с цитированием
  #13 (permalink)  
Старый 10.10.2017, 10:13
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

рони,
написал так, вот краткий код:
var slaidTimer;

$(".kuchuUn").click(function(){
	clearTimeout(slaidTimer); // вот чистка таймера
	
	if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){
		transPoz = 0;
		slaidPoz.bind(this)(transPoz);
	}else{
		transPoz = transPoz - slRasBlokWidth;
		slaidPoz.bind(this)(transPoz);
	}
});

slaidTimer = setTimeout(function slaidTime(){
	var transBlok = $(".slaidContainer");
	if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){
		transPoz = 0;
		transBlok.css("transform", "translateX("+transPoz+"px)");
	}else{
		transPoz = transPoz - slRasBlokWidth;
		transBlok.css("transform", "translateX("+transPoz+"px)");
	}
	slaidTimer = setTimeout(slaidTime, slaidInterval); // если тут переменную убрать - вообще как без изменений (без сброса),
//а если поставить - после клика таймер вообще перестает работать (слайды стоят на месте)
}, slaidInterval);
Ответить с цитированием
  #14 (permalink)  
Старый 10.10.2017, 10:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Булат Азат улы,
как вариант...
var slaidTimer;

$(".kuchuUn").click(function(){
  clearTimeout(slaidTimer);

  if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){
    transPoz = 0;
    slaidPoz.bind(this)(transPoz);
  }else{
    transPoz = transPoz - slRasBlokWidth;
    slaidPoz.bind(this)(transPoz);
  }
});

function slaidTime(){
  clearTimeout(slaidTimer);
  var transBlok = $(".slaidContainer");
  if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){
    transPoz = 0;
    transBlok.css("transform", "translateX("+transPoz+"px)");
  }else{
    transPoz = transPoz - slRasBlokWidth;
    transBlok.css("transform", "translateX("+transPoz+"px)");
  }
  slaidTimer = setTimeout(slaidTime, slaidInterval);
};
slaidTime();

$("#topBlok").mouseleave(slaidTime)
Ответить с цитированием
  #15 (permalink)  
Старый 12.10.2017, 18:13
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript. Уровень 3в. Серверное программирование на Node.js maxy666 Node.JS 8 10.08.2014 00:36
$(this) в теле плагина prison47 jQuery 32 03.03.2013 23:50
Использование $(this) внутри функции Dorian_bs Общие вопросы Javascript 6 21.11.2011 11:10
$(this) выборка Kuklavod jQuery 4 01.11.2011 20:15
Использование одной переменной в нескольких функциях (Sandr) Общие вопросы Javascript 10 10.07.2011 13:42