元素focus页面不滚动不定位的JS处理

Posted chao202426

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元素focus页面不滚动不定位的JS处理相关的知识,希望对你有一定的参考价值。

有时候我们希望元素被focus的时候页面不发生滚动,例如我们点击一个按钮打开一个弹框,此时点击弹框中的关闭按钮隐藏弹框后,希望键盘的焦点回到之前的按钮上,我们就会执行如下javascript代码:

button.focus();

但是有时候会带来另外一个比较严重的体验问题,那就是如果弹框显示之后我们页面发生了滚动,原本点击的按钮跑到了屏幕显示区域之外,这个时候,按钮再次focus的时候就会触发按钮元素scrollIntoView重定位,浏览器发生滚动,表现为突然的跳动

如果想要聚焦同时不发生滚动,其实很简单,使用一个全新的API参数preventScroll就可以了,例如:

button.focus( 
    preventScroll: true 
);

注:不兼容IE。

以上是关于元素focus页面不滚动不定位的JS处理的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化17-JS处理滚动条

python + selenium + Js 处理轮动条

锚点定位不准确,怎么解决。

怎么用js固定某个元素,让它不随页面的滚动而滚动,始终固定在窗口的某个位置?

JS实现页面进入返回定位到具体位置

scroll-view里面的定位元素如何能同步滚动