求助:原生JS实现滚动块定位

新手上路,请多包涵

现有问题:
点击字体之间的空白处(比如:UI Design和UX Researcher之间的白色区域)蓝色滑块会产生移动(top值不固定),不够精准定位。

css代码:
灰色高度计算方式 : height: calc(100% - 8px * 2);
蓝色块高度为20px: height: 20px;

JS代码:

container.addEventListener("click", function(event) {
    let yPosition = event.clientY - container.getBoundingClientRect().top - (theThing.clientTop + 20);
    theThing.style.top = yPosition + "px";
});

功能实现图:
默认情况点击后现有问题.

阅读 1.9k
1 个回答

谁让你用 event.clientY 了?

你的思路应该是获取单击的块(event.target),然后获取块的坐标,然后定位过去,这样定位才准。

你定位到单击位置那肯定不准呀。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题