如何定位网页批注的间距?
在开发类似 word 批注功能时,我们需要实现批注的间距效果,即靠近的批注紧挨在一起,距离较远的批注显示在靠近批注文本的位置。
对于这种需求,可以使用绝对定位,并针对批注的顶部位置和高度进行统计。
首先,将批注的顶部位置和高度存储在数组中,如下所示:
[ {top: 100, height: 200}, {top: 800, height: 200}, {top: 820, height: 200}, {top: 1020, height: 200}, ]
登录后复制
然后,使用 reduce 函数迭代数组,计算每个批注的当前顶部位置,即距离其前面的批注的最大值:
arr.reduce((s, n, i) => { n.currenttop = math.max(n.top, (s.currenttop || s.top) + s.height) return n })
登录后复制
最终的结果如下:
[ {top: 100, height: 200, currentTop: 100}, {top: 800, height: 200, currentTop: 800}, {top: 820, height: 200, currentTop: 820}, {top: 1020, height: 200, currentTop: 1020}, {top: 1430, height: 180, currentTop: 1020 + 200} ]
登录后复制
通过这种方式,我们可以根据批注的间距,动态调整批注的顶部位置,实现类似 word 批注功能的间距效果。
以上就是如何实现网页批注的间距效果,让靠近的批注紧挨在一起,距离较远的批注显示在靠近批注文本的位置?的详细内容,更多请关注抖狐科技其它相关文章!
-
长城显示器如何
长城显示器,中国领先的显示器制造商,以其出色的图像质量、可靠性和创新设计而闻名。其产品线涵盖游戏、商务、设计和娱乐显示器,满足不同用户的需求。长城显示器在中国拥有庞大的市场份额,也是全球领先的供应商之...
-
星露谷物语乔迪红心事件怎么触发 乔迪红心事件触发攻略
星露谷物语游戏中有很多npc,其中乔迪是中鹈鹕镇的一名居民,她的家位于柳巷1号,那么有玩家问了星露谷物语乔迪红心事件怎么触发?下面就一起来看看星露谷物语乔迪红心事件触发攻略吧!星露谷物语乔迪红心事件...
-
如何在 Golang 中测试函数回调
在 go 中测试回调函数可以通过以下方法实现:使用模拟框架,如 gomock,创建回调函数的模拟对象并验证其预期行为。对于简单场景,可以使用匿名函数来测试回调,而无需定义单独的函数。编写自定义测试辅助...
-
网易云的vip自动续费怎么关闭
在网易云音乐 app 中关闭 vip 自动续费步骤:1. 点击“我的”图标;2. 进入“会员中心”;3. 点击“vip 服务”;4. 找到并关闭“自动续费”选项。如何关闭网易云音乐 VIP 自动续费?...
-
英雄联盟手游如何购买月卡 英雄联盟手游怎么开启月卡
如何在英雄联盟手游中开启月卡?英雄联盟手游中提供了便捷的月卡服务,让玩家可以享受专属特权。php小编新一现为您带来详细开启月卡的操作指南。通过以下步骤,您将轻松开启月卡,尽情享受手游的更多乐趣: 在游...