gpt4 book ai didi

javascript - 使用 SVG 时,ScrollIntoView 在 Firefox 中出现错误

转载 作者:搜寻专家 更新时间:2023-11-01 05:27:18 25 4
gpt4 key购买 nike

我有一个垂直长的 SVG 图像,我需要滚动到具有特定 id 的特定元素。

const el = document.getElementById(id);
el.scrollIntoView({
behavior: 'smooth',
block: 'center'
});

这在 chrome 中工作正常,但 Firefox 滚动到 SVG 文件的顶部,而不是所选元素。

我在 stackblitz 中重现了这个错误:

https://stackblitz.com/edit/react-wkoiwq

https://react-wkoiwq.stackblitz.io

在 chrome 中,#hotplate 元素被移动到中心,而在 firefox 中,SVG 的顶部被移动到中心。

尝试改变 centerstartend 看看效果。

有没有办法解决/避免这个问题?

最佳答案

也许手动执行是正确的解决方案:

例如:

var el = document.getElementById("hotplate");

// { block: "top" } behavior:
let newScrollY = window.pageYOffset + el.getBoundingClientRect().top;

// adjust to behave like { block: "center" }
newScrollY = newScrollY - document.documentElement.clientHeight/2;

window.scrollTo({top: newScrollY, behavior: 'smooth'});

关于javascript - 使用 SVG 时,ScrollIntoView 在 Firefox 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57610098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com