Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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 如何避免MSIE滚动溢出表:隐藏;_Javascript_Html_Css_Internet Explorer - Fatal编程技术网

Javascript 如何避免MSIE滚动溢出表:隐藏;

Javascript 如何避免MSIE滚动溢出表:隐藏;,javascript,html,css,internet-explorer,Javascript,Html,Css,Internet Explorer,通过使用 overflow: hidden; 在Tables容器上。 如果我通过按Tab键进入columns输入字段,那么在MSIE上它会将焦点列滚动到视口中。我想关闭此功能,并使其类似于FF,它保持不变 编辑:我刚刚认识到,如果列完全不可见,FF也会这样做,即使列被部分剪裁,MSIE也会这样做 编辑:欢迎使用任何javascript解决方案。类似“preventdefault”的东西,但我不知道该挂接什么事件 #容器{ 宽度:400px; 溢出:隐藏; } A. B C 标签 这是浏览器

通过使用

overflow: hidden;
在Tables容器上。 如果我通过按Tab键进入columns输入字段,那么在MSIE上它会将焦点列滚动到视口中。我想关闭此功能,并使其类似于FF,它保持不变

编辑:我刚刚认识到,如果列完全不可见,FF也会这样做,即使列被部分剪裁,MSIE也会这样做

编辑:欢迎使用任何javascript解决方案。类似“preventdefault”的东西,但我不知道该挂接什么事件

#容器{
宽度:400px;
溢出:隐藏;
}

A.
B
C
标签

这是浏览器在聚焦时(实际上是在键入时)将
输入带入视图的默认行为,@GyumFox指出

您可以使用Javascript重置滚动或禁用超出表边界的
输入

选项1:(重置滚动)

这在Chrome和Firefox中可以很好地工作,但在IE中会给你一个闪烁

小提琴1:

片段1:

$(“#容器”)。在(“滚动”,函数()上){
$(此)。向左滚动(0);
});
#容器{
表布局:固定;宽度:400px;溢出:隐藏;
}

基础知识
标签

您在哪个版本的IE中遇到这个问题?@Bojangles我在Win7上用BrowserStack尝试了IE11这是浏览器在接收焦点时使元素完全可见的标准行为。而且,您无法阻止或事件中的默认行为。因此,您最好的机会是在焦点事件之前保存滚动位置,然后在JS中使用恢复滚动位置(可能会闪烁)。Hi@GyumFox,使用jQuery offset()是否可以实现“保存滚动位置”。左?我想恢复位置最简单的方法是jquery offset。有更好的主意吗?在jQuery中不确定。在纯JS中,如果带有滚动条的元素不是页面本身,那么您将看到scrollLeft和scrollTop(否则您可能需要一些跨浏览器的魔法,例如:window.pageYOffset | | | document.documentElement.scrollTop | | | element.scrollTop)。谢谢,滚动事件加上重置scroll left是我想要的。第一个解决方案适用于我的案例。是的,第一个解决方案就是我所想到的。根据页的结构,可以考虑保存所有父卷的滚动位置,然后在焦点之后恢复它们(即,如果表包含在其他滚动元素中)