Показать сообщение отдельно
  #1 (permalink)  
Старый 16.06.2016, 15:22
Новичок на форуме
Отправить личное сообщение для kex15i10 Посмотреть профиль Найти все сообщения от kex15i10
 
Регистрация: 16.06.2016
Сообщений: 5

Почему крашится анимация
собственно сабж
function load_img(count){
	var height = $("#slider").height();
	var width = $("#slider").width();

	$(".slide").each(function(index, el) {
		if (index<10){
			var left = - 1 * (index * (width / count));
			$(this).css({
				backgroundSize: width, height,
				backgroundImage: "url(pics/slider/pic.jpg)",
				backgroundPosition: left
			});
		}	
		if (index>9 && index<20){
			var left = - 1 * (index * (width / count));
			$(this).css({
				backgroundSize: width, height,
				backgroundImage: "url(pics/slider/pic2.jpg)",
				backgroundPosition: left
			});
		}		
	});
}
function slider_wrapper(slides_count, slide_elements){
	var wrapper_height = $("#slider").height() * (slides_count + 1);
	var wrapper_width = $("#slider").width();
	var slide_now = 0;
	var slide_element_width = $("#slider").width() / slide_elements;
	var top = 0;
	var counter = 0;

	$("#slider").append("<div id='slider_wrapper'>");
	$("#slider_wrapper").css({
		height: wrapper_height,
		width: wrapper_width,
		top: "0",
		left: "0",
		margin: "0",
		padding: "0",
		position: "absolute"
	});
	for (var i=0; i <= slides_count; i++){
		for (var j=0; j<slide_elements; j++)
			$("#slider_wrapper").append("<div class='slide'>");
	}
	$(".slide").each(function(index, el) {
		left = counter * slide_element_width;
		counter++;
		slides[index] = el;

		//if (index < slides_count * slide_elements){
			$(el).css({
				backgroundColor: random_color(),
				width: slide_element_width,
				height: $("#slider").height(),
				margin: "0",
				padding: "0",
				listStyle: "none",
				position: "absolute",
				left: left,
				top: top
			});
			if ((index + 1) % slide_elements == 0){
				top += $("#slider").height();
				counter = 0;
			}
		//}
	});
	load_img(slide_elements);
	$("#slider").scrollTop($("#slider").height() * (slides_count - 1));
	slider_animation(slides_count, slide_elements);
}
function slider_animation(slides_count, slide_elements){
	setInterval(function(){
		$(".slide").each(function(index, el) {
			var top = Math.round($(el).position().top) + Math.round($("#slider").height());
			
			$(el).animate({
				top: top
			}, 500, function(){
				if (top > slides_count * Math.round($("#slider").height()))
					$(el).css({
						top: "0"
					});
				//load_img(10);
			});
		});
		
		
	}, 1000);
}

при сворачивании/розворачивании, открытии вкладки происходит (судя по всему) неправильный пересчет координат и анимация работает не правильно...с чем это связано и как бороться?
Ответить с цитированием