ネストされたグループの中のこざねの位置が更新された時に、親の親のグループのなんらかの値が更新されてない 親のpositionは更新されているが、その親のは更新されてない 関連して「G1を外に出してまた中に入れた後1を外に出すとジャンプする」
fixed
「G1を外に出してまた中に入れた後1を外に出すとジャンプする」 without X
do_drag("1", "ba", 100, 100);
with X js
do_drag("G1", "ba", 0, 0);
do_drag("G1", "G2", 0, 0);
do_drag("1", "ba", 100, 100);
:
A: 1 | *left,top | G1 | G2 | delta | B: 1 | CSS:left,top | *left,top | |
---|---|---|---|---|---|---|---|---|
without X | 0, 0 | 184, 199 | 0, 0 | 0, 0 | -84, -99 | -84, -99 | -150,-150 | 100,100 |
with X | 0, 0 | 225, 225 | 0, 0 | 41, 26 | -125, -125 | -125, -125 | -191,-176 | 59, 74 |
- A: before drag
- B: after drag
- *: getBoundingClientRect
:
A: 1 | *left,top | G1 | G2 | delta | B: 1 | G1 | G2 | CSS:left,top | *left,top | |
---|---|---|---|---|---|---|---|---|---|---|
without X | 0, 0 | 184, 199 | 0,0 | 0, 0 | -84, -99 | -84, -99 | 0,0 | 0,0 | -150,-150 | 100,100 |
with X | 0, 0 | 225, 225 | 0,0 | 41, 26 | -125, -125 | -125, -125 | 0,0 | 41, 26 | -191,-176 | 59, 74 |
drag G2 | 0,0 | 180, 230 | 0,0 | -4,31 | -80, -130 | -80, -130 | 0,0 | -4, 31 | -150,-150 | 104,69 |
よりシンプルな問題再現手順
- ネストされたグループのG2をvドラッグしてから1を外に出した時に期待した位置より-vズレる
これは補正しすぎな感じがあるが、そもそもなぜ補正したのか? 補正がされるべきケースもある?
直接の親のpositionだけを足してるな、これがまずいのか
done
リリースノート
- 2つ以上のグループが入れ子になっている場合にグループに対する矢印の端点がおかしくなるバグを修正しました
- 2つ以上のグループが入れ子になっている中からアイテムをドラッグドロップした際にドロップ位置と異なる位置に移動するバグを修正しました
2021-12-28 リリースノート
- 線の透明化の度合いを強くしました
- こざねをドラッグしようとして線の上でマウスダウンしたときに、意図せず範囲選択になっていた挙動を修正しました
- 線がマウスイベントを受け取らないようにしました
矢印に対する編集をどうやるか悩ましい 使ってみて感じてること
- 間違って逆向きに矢印をつけてしまったときにUndoしたい
- 削除でもいい
- 今はこざねをcloneして削除している
- 3項目に線を引いた後で4項目が正解だったと思った時に全部作り直すしか方法がない
この二つに関しては選択して「線から抜ける」と言うアクションでも良い
- 線が複数ある場合に全部から抜けてしまうけど…