jQuery焦点无滚动

前端之家收集整理的这篇文章主要介绍了jQuery焦点无滚动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何集中到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();

但我没有测试它。

猜你在找的jQuery相关文章