Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用「文档树层级指示竖线」导致展开或收起子文档时跳动到文档树顶部 #10

Closed
TCOTC opened this issue Jan 31, 2024 · 9 comments

Comments

@TCOTC
Copy link
Contributor

TCOTC commented Jan 31, 2024

如视频演示,对比了不开启插件和仅开启「文档树层级指示竖线」的情况:

2024-01-31.12-43-39.mp4
@zxkmm
Copy link
Owner

zxkmm commented Jan 31, 2024

感谢反馈!
我这边确实复现了。但是我目前暂时想不到会是什么造成的,因为指示竖线本质上只是css边框。
另外我还注意到,即使禁用所有的插件,思源的文档树展开和收缩时候也依然会出现跳动的情况,有时候严重有时候不严重,相比obsidian就没发现这样的奇怪情况。
所以可能不全是插件这边的原因,具体的我会排查一下为什么插件加重了这个情况,但是要修整到像obsidian那样顺畅可能需要动思源主程序。主程序那边我有空也会去看一下,最近在弄另外的项目

@TCOTC
Copy link
Contributor Author

TCOTC commented Jan 31, 2024

又发现一个问题:当文档树展开较长时,如果打开的文档在靠后的位置,点击「定位打开的文档」后虽然文档树正确展开了,但也会跳动到文档树顶部

@zxkmm
Copy link
Owner

zxkmm commented Jan 31, 2024

diergewf

@zxkmm zxkmm closed this as completed Jan 31, 2024
@zxkmm zxkmm reopened this Jan 31, 2024
@zxkmm
Copy link
Owner

zxkmm commented Jan 31, 2024

抱歉点错了,请问第二个问题是发生在指示线伪元素存在时候还是其他功能呢?

@TCOTC
Copy link
Contributor Author

TCOTC commented Jan 31, 2024

还是仅使用「文档树层级指示竖线」的情况

@zxkmm
Copy link
Owner

zxkmm commented Jan 31, 2024

刚才排查了一下,感觉还是思源的文档树定位的问题。
个人猜测思源现在的文档树定位实现是通过计算item的数量然后再乘像素高度,然后滚动到乘出来的数来实现的。
所以伪元素存在以后,计算结果就变成两倍,就滚动太多了。
这个就麻烦了,因为没有伪元素就没办法加指示线,插件没办法动思源的那个部分,除非我自己重新实现滚动功能。
当然如果能让V重写一下滚动的部分就更好了,毕竟不是我的代码所以我想要上手还是得一两个月的。而且思源不开插件也有滚动乱跳的问题,只是不严重。可能算法本身就有问题。

@zxkmm
Copy link
Owner

zxkmm commented Jan 31, 2024

(我仅仅是看表面现象凭经验猜测,我还没有去读思源的源代码)

@TCOTC
Copy link
Contributor Author

TCOTC commented Feb 6, 2024

应该解决了:siyuan-note/siyuan/issues/10311

@zxkmm
Copy link
Owner

zxkmm commented Feb 6, 2024

谢谢,等我有空测一下其他edge case

@zxkmm zxkmm closed this as completed Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants