
Valera
26.10.2016
22:23:02
Да

LZD64
26.10.2016
22:23:07
и первая кордината значит не пересчитывается
или там наоборот х1 снизу х2 сверху?

Valera
26.10.2016
22:23:38
Смотря для чего. Для линии выше точки нет. А для линии ниже - пересчитывается

Google

Valera
26.10.2016
22:23:49
x1 сверху

LZD64
26.10.2016
22:24:10
вот она и не пересчитывается при удалении элемента
почему?
причем не пересчитывается только при удалении. При добавлении пересчитывается

Valera
26.10.2016
22:26:28
По логике вещей она должна пересчитываться на 60 строке
Функция пересчета то одна и та же на все

LZD64
26.10.2016
22:29:07

Valera
26.10.2016
22:33:49
Вызывается. Расположение точек же пересчитывается

LZD64
26.10.2016
22:34:22
точек да но не x1

Valera
26.10.2016
22:36:01
Только что проверил, происходит

LZD64
26.10.2016
22:37:04

Google

LZD64
26.10.2016
22:38:05

Valera
26.10.2016
22:38:40
Вот так было
Вот так стало, когда удалил 18:
Точки пересчитались

LZD64
26.10.2016
22:39:29
хм
давай разберем как проиходит пересчет х1 при удалении
$('g[data-id='+id+'] line').each(function(){ // Пересчет линий, которые НИЖЕ данной строки
d3.select(this).transition()
.duration(1000)
.attr("x1", b+'%');
});
я так понимаю это оно?
оно берет каждый ид тоесть каждый кругляшек и присваивает ему х1
для линии
ан нет у линни аж два значения х1 y1 и х2 y2
воторые вообще не считаются
не пересчитываются

Valera
26.10.2016
22:54:57
Оно берет id кружка
Который находится сейчас в заданном ряду (а кружки перебираются все)
За каждым кружком идет группа с таким же id (в этой группе дочерние элементы)
Вот, ищется группа с таким же id, какой был у кружка
В ней выбираются все линии (которые непосредственно в ней, а не во в неё вложенных группах)

Google

Valera
26.10.2016
22:57:28
И с этими линиями происходит работа
То есть меняется x1 (поскольку группа и линии ниже кружка, то меняем только верх. координату)
58 строка
Если убрать .transition()
.duration(1000)
То все работает как надо

LZD64
26.10.2016
23:03:44
тут нестыковка у тебя если работа происходит только со входящими в группу элементами тогда как двигаются кружки если удалить кружок из другой группы?

Valera
26.10.2016
23:04:32
Пересчет для всех групп происходит
Оно перебирает каждую группу в ряде
И линии в группе
Если убрать .transition()
.duration(1000)
То все работает как надо

LZD64
26.10.2016
23:05:21

LZD64
26.10.2016
23:05:34
оно рводе никак на пересчет не влияет

Valera
26.10.2016
23:05:36
Таки в анимации
Но надо, что б работало именно с анимацией
Ну попробуй сам, убрать эти строчки и проверь

LZD64
26.10.2016
23:06:13
я проверил работает
Таки в анимации
наверно оно не может посчитать из за анимации полпробуй сначал считать а потом анимировать так можно?

Valera
26.10.2016
23:07:58
Так оно сначала считает, а потом только записывает просчитанное значение (меняет координату)

LZD64
26.10.2016
23:17:38
может пробелма в переменных

Google

Valera
26.10.2016
23:20:20
В каких именно?

LZD64
26.10.2016
23:21:25
.attr("x1", parent.attr('cx'))
.attr("y1", parseInt(parent.attr('cy'))+8)

Valera
26.10.2016
23:27:27
Так это вообще только при создании линии используется

LZD64
26.10.2016
23:28:43
а y1 не пересчитывается?

Valera
26.10.2016
23:29:26
Нет

LZD64
26.10.2016
23:29:31
а почему?

Valera
26.10.2016
23:29:36
Высота всегда одна

LZD64
26.10.2016
23:29:52
а ну да

Admin
ERROR: S client not available

LZD64
26.10.2016
23:41:38
ато в х1 какоето шаманство происходит непонятное
на 57 строке
вот на 66 вроде все ясно

Valera
26.10.2016
23:44:41
На 57 строке на расчет, а просто выбор линий, для которых меняется координата
Если сделать так же, как на 66, то я не смогу для нужной линии забивать правильную координату родителя

LZD64
26.10.2016
23:54:48
без всяких расчетов
а оно и так завязано на нем
ваще как происходит пересчет х1?
вижу только .attr("x1", b+'%');

Google

LZD64
26.10.2016
23:59:04
но это неособо помогает
х1 унас значит b+
а b+ это у нас a
а a всвою очередь a = 100/(count+1);

Valera
27.10.2016
00:01:02
Смотри

LZD64
27.10.2016
00:01:04
ваааааааа как слажно

Valera
27.10.2016
00:01:07
Если после 69 строки
Поставить .delay(1000)
Все работает
Опять же, анимация не оч
Но работает
Расчеты там все верны, тут в анимации же дело

LZD64
27.10.2016
00:02:10
ну как так
неможет такого быть

Valera
27.10.2016
00:07:45
С пересчетем x2 походу проблемы

LZD64
27.10.2016
00:08:37
почему х2 вроде встает на свое место

Valera
27.10.2016
00:10:11
А не
Блин
Сам не пойму, как так то

LZD64
27.10.2016
00:11:05
$('g[data-id='+id+'] > line').each(function(){ // Пересчет линий, которые НИЖЕ данной строки
что вот тут происходит?

Valera
27.10.2016
00:12:14
Выбор группы с таким же id, как у круга