如何集中到HTML元素(例如“a”),不要更改当前滚动设置。
例如。如果我使用:
$('#link').focus();
并且此链接在屏幕中不可见(例如在可见区域下),浏览器向下滚动以显示元素。如何在没有滚动条移动的情况下设置焦点?我需要在原来的地方保持滚动条。
我试过这个,但它产生一些屏幕闪烁,这是一个黑客,而不是一个优雅的解决方案:
var st=$(document).scrollTop(); $('#link').focus(); $(document).scrollTop(st);
有人可以帮助我吗?
解决方法
尝试这个:
$.fn.focusWithoutScrolling = function(){ var x = window.scrollX,y = window.scrollY; this.focus(); window.scrollTo(x,y); return this; //chainability };
接着
$('#link').focusWithoutScrolling();
编辑:
据报告,这不工作在IE10。可能的解决方案是使用:
var x = $(document).scrollLeft(),y = $(document).scrollTop();
但我没有测试它。