jQuery焦点无滚动

前端之家收集整理的这篇文章主要介绍了jQuery焦点无滚动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何集中到HTML元素(例如“a”),不要更改当前滚动设置。

例如。如果我使用:

  1. $('#link').focus();

并且此链接在屏幕中不可见(例如在可见区域下),浏览器向下滚动以显示元素。如何在没有滚动条移动的情况下设置焦点?我需要在原来的地方保持滚动条。

我试过这个,但它产生一些屏幕闪烁,这是一个黑客,而不是一个优雅的解决方案:

  1. var st=$(document).scrollTop();
  2. $('#link').focus();
  3. $(document).scrollTop(st);

有人可以帮助我吗?

解决方法

尝试这个:
  1. $.fn.focusWithoutScrolling = function(){
  2. var x = window.scrollX,y = window.scrollY;
  3. this.focus();
  4. window.scrollTo(x,y);
  5. return this; //chainability
  6.  
  7. };

接着

  1. $('#link').focusWithoutScrolling();

编辑:

据报告,这不工作在IE10。可能的解决方案是使用:

  1. var x = $(document).scrollLeft(),y = $(document).scrollTop();

但我没有测试它。

猜你在找的jQuery相关文章