Показать сообщение отдельно
  #9 (permalink)  
Старый 25.09.2015, 15:36
Аватар для annie88
Кандидат Javascript-наук
Отправить личное сообщение для annie88 Посмотреть профиль Найти все сообщения от annie88
 
Регистрация: 25.09.2015
Сообщений: 101

У меня есть бесконечно движущаяся лента с фамилиями людей, прокручиваясь на высоту одного блока лента замирает и в окошках, расположенных над этой лентой отображается человек и его расписание. Все данные хранятся в бд. Фамилии и расписание подгружается по мере надобности
// прокрутка ленты на высоту блока
function loadingScrollingPage(){
	// если есть элемент в переменной LastActiveDoc
	if (LastActiveDoc){
		// вставим скопированный блок в самый конец общего блока
		document.getElementsByClassName('doc')[0].parentNode.appendChild(LastActiveDoc);
		// удалим первый блок
		document.getElementsByClassName('doc')[0].remove();
		PreloadDataCalendar();
	}
	// возьмем первый элемент
	var activElement = document.getElementsByClassName('doc')[0];		
	//создадим див
	LastActiveDoc = document.createElement('div');	
	//присвоим ему класс doc
	LastActiveDoc.className = 'doc';	
	//поместим содержимое первого блока в созданный блок
	LastActiveDoc.innerHTML = document.getElementsByClassName('doc')[0].innerHTML;
	// возьмем высоту первого блока
	var pixelScrollElement = activElement.offsetHeight;
	var sum = 0; //служит для вывода номера активного блока ( для того чтобы счет велся с третьего блока)
     if((numBlock+2)>countBlock)
	 {index++; sum = index; }
	 else{ index = 0; sum = numBlock+3;}	
	numBlock < countBlock?numBlock++:numBlock = 0;	
		// прокрутим блок вверх на всю его высоту
	$(activElement).delay(10000).animate({ marginTop: -pixelScrollElement}, 5000,loadingScrollingPage);
}

в функции отображения графика (он отображается из JSON-файла), вызывается Effect()
function Effect(visualElement){
//присваивается значение блоку отображения
document.getElementById('effect').innerHTML =  visualElement.innerHTML;
//запуск эффекта для графика и окна с "активным" человеком
$('.fc-day-grid, #in-active-block').stop().fadeIn(4500).delay(9500).fadeOut(800);
}

и вот здесь я начинаю тупить
Время, дающее в сумме 15с.(время прокрутки ленты) вызывает разницу в отображении, примерно на 6-ом блоке первой итерации, то что я применила выше также выдаст "мигание", но на 10-ом блоке 2-ой итерации, затем происходят какие-то короткие периоды, когда блоки отображаются нормально, затем снова начинают "мигать"

Последний раз редактировалось annie88, 25.09.2015 в 15:40.
Ответить с цитированием