我正在制定一份项目清单。
我在列表顶部有一个表单,用于添加新项目(只有 1 个输入和 1 个提交按钮)。
提交表单后,我将获得下一个代码,以便自动滚动到新元素(无论它适合列表中的任何位置):
document.getElementById(newItemId).scrollIntoView({ behavior: "smooth" });
为了测试目的和更好地理解问题,我创建了一个巨大的列表(50 个项目),并将所有新项目放置在列表的底部,这样我可以获得更清晰的证据。
创建项目#51时:
如果我单击提交按钮(只需单击鼠标),它适用于所有浏览器(在 Chrome、Firefox 和 Edge 中测试):该项目在底部创建,浏览器向下滚动到末尾这一页。
按 ENTER 键:
按 Tab 键进入提交按钮,然后按 ENTER 键,它可以在所有浏览器中工作。
注意:没有 behavior: "smooth"
没有问题,因为它是即时滚动,中间没有时间被打断。
注意2:我设法使用 window.scrollTo() 方法开发了一种解决方法,但我希望使其与scrollIntoView() 一起使用,以避免像素完美计算,并向受影响的浏览器报告此问题,以防出现这种情况一个错误。