Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当焦点转移到屏幕外元素时,如何控制浏览器自动滚动的程度?_Javascript_Html_Css_Scroll_Focus - Fatal编程技术网

Javascript 当焦点转移到屏幕外元素时,如何控制浏览器自动滚动的程度?

Javascript 当焦点转移到屏幕外元素时,如何控制浏览器自动滚动的程度?,javascript,html,css,scroll,focus,Javascript,Html,Css,Scroll,Focus,在我头撞墙6个小时后 我有一个html表单,包含一系列输入,排列在一个网格中,每个列中都有足够的内容,这样页面上就会出现溢出,从而出现一个滚动条。输入有选项卡索引,所以它就像一个数据输入表单。您可以在文本输入和选项卡中输入信息。制表符索引是这样的:当您制表时,您会一直向下移动到第一列,然后移动到下一列的顶部,等等。当您到达底部并将制表符插入屏幕外的图元时,浏览器会重新定位,以便该图元现在位于可视空间中 问题出在这里。当这种情况发生时,Chrome和Edge会自动向下滚动相当大的数量,但FF和IE

在我头撞墙6个小时后

我有一个html表单,包含一系列输入,排列在一个网格中,每个列中都有足够的内容,这样页面上就会出现溢出,从而出现一个滚动条。输入有选项卡索引,所以它就像一个数据输入表单。您可以在文本输入和选项卡中输入信息。制表符索引是这样的:当您制表时,您会一直向下移动到第一列,然后移动到下一列的顶部,等等。当您到达底部并将制表符插入屏幕外的图元时,浏览器会重新定位,以便该图元现在位于可视空间中

问题出在这里。当这种情况发生时,Chrome和Edge会自动向下滚动相当大的数量,但FF和IE只会滚动一点点。我希望FF和IE滚动更大的数量,但我不知道如何控制它。此外,当您从列中的最后一个输入进行制表时(这将使您进入下一列的顶部输入),Chrome和Edge将一直滚动到顶部,以便您刚刚制表的元素位于可视区域内。不过,我还是觉得。。。它们甚至无法向上滚动,因此元素要么几乎不在可视区域,要么不在可视区域,迫使您使用滚动条完成任务

似乎应该有一些设置,当浏览器发现自己因为焦点更改为屏幕外的元素而被迫滚动时,它应该滚动多少。我曾经考虑过放一个焦点事件监听器,这样,如果你在点击输入时开始接近可见空间的边缘,我会继续强制我自己的滚动(window.scrollBy(0,50)),但是想到一定有一些全局滚动量,或者滚动边距,或者你有什么,我会很沮丧,这可以设置为,当您在可视区域之外的元素中进行制表(聚焦)时,所有浏览器的滚动量相同


如有任何建议,我将不胜感激。我想,如果窗口或文档中没有某种css属性来处理这个问题,那么就需要从浏览器中接管滚动的工作,并在focus方法中自己实现它。

您能解决这个问题吗?我也有同样的问题。