Показать сообщение отдельно
  #4 (permalink)  
Старый 22.11.2016, 18:40
Новичок на форуме
Отправить личное сообщение для EuRo1985 Посмотреть профиль Найти все сообщения от EuRo1985
 
Регистрация: 22.11.2016
Сообщений: 8

Максимально постарался сократить скрипт. Добавил все условия на примере одной линии - line2. Осталось научить его подставлять нужный порядковый номер в соответствующие места.

$(function(){
		var slideSize = $('#slide-business');
		var imgS1 = parseInt($('.circles img.img1').width());
		var imgS2 = parseInt($('.circles img.img2').width());
		var line1CoorX1 = parseInt($('.circles img.img1').css('left'));
		var line1CoorY1 = parseInt($('.circles img.img1').css('top'));
		var line2CoorX2 = slideSize.width()-parseInt($('.circles div.img2').css('right'))-imgS2/2;
		var line2CoorY2 = parseInt($('.circles div.img2').css('top'))+imgS2/2;
		var line3CoorX2 = slideSize.width()-parseInt($('.circles div.img3').css('right'))-imgS2/2;
		var line3CoorY2 = parseInt($('.circles div.img3').css('top'))+imgS2/2;
		var line4CoorX2 = parseInt($('.circles div.img4').css('left'))+imgS2/2;
		var line4CoorY2 = slideSize.height()-parseInt($('.circles div.img4').css('bottom'))-imgS2/2;
		var line5CoorX2 = parseInt($('.circles div.img5').css('left'))+imgS2/2;
		var line5CoorY2 = slideSize.height()-parseInt($('.circles div.img5').css('bottom'))-imgS2/2;
	
		if(line2CoorX2>line1CoorX1){
			var line2Angle = Math.atan2(line2CoorX2-line1CoorX1,line1CoorY1-line2CoorY2);
		} else {
			var line2Angle = Math.atan2(line1CoorX1-line2CoorX2,line2CoorY2-line1CoorY1);
		}

		var line2SideX1 = Math.abs(Math.sin(line2Angle)*(imgS1/2));
		var line2SideY1 = Math.abs(Math.cos(line2Angle)*(imgS1/2));	
		var line2SideX2 = Math.abs(Math.sin(line2Angle)*(imgS2/2));
		var line2SideY2 = Math.abs(Math.cos(line2Angle)*(imgS2/2));
				
		if(line2CoorX2>line1CoorX1){
			$('#slide-business svg .line2')
				.attr('x1',line1CoorX1+line2SideX1+line2SideX2*0.3)
				.attr('x2',line2CoorX2-line2SideX2-line2SideX2*0.3)
		} else {
			$('#slide-business svg .line2')
				.attr('x1',line1CoorX1-line2SideX1-line2SideX2*0.3)
				.attr('x2',line2CoorX2+line2SideX2+line2SideX2*0.3)
		}
		
		if(line2CoorY2>line1CoorY1){
			$('#slide-business svg .line2')
				.attr('y1',line1CoorY1+line2SideY1+line2SideY2*0.3)
				.attr('y2',line2CoorY2-line2SideY2-line2SideY2*0.3);
		} else {
			$('#slide-business svg .line2')
				.attr('y1',line1CoorY1-line2SideY1-line2SideY2*0.3)
				.attr('y2',line2CoorY2+line2SideY2+line2SideY2*0.3);
		}
		
	});

Последний раз редактировалось EuRo1985, 22.11.2016 в 18:47.
Ответить с цитированием