Javascript 聚焦切换块上的浏览器位置

Javascript 聚焦切换块上的浏览器位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有几个ul模块和按钮可以打开它们的内容。当我按下按钮时,屏幕上的所有内容都会消失,但屏幕仍保持焦点。但当我向下滚动到块的底部并按下按钮将其切换回隐藏模式时,浏览器屏幕将向下移动到浏览器的底部,而不会返回到关闭块的顶部(如预期的那样) $('.ul'+l).append('Button'); $.fn.myFunc=函数(){ var ul=$(this.parent().attr('class'); $('.+ul+'li:gt(5)')。快速切换(“快速”); }; 我试着设置一些$(窗口

我有几个ul模块和按钮可以打开它们的内容。当我按下按钮时,屏幕上的所有内容都会消失,但屏幕仍保持焦点。但当我向下滚动到块的底部并按下按钮将其切换回隐藏模式时,浏览器屏幕将向下移动到浏览器的底部,而不会返回到关闭块的顶部(如预期的那样)

$('.ul'+l).append('Button');
$.fn.myFunc=函数(){
var ul=$(this.parent().attr('class');
$('.+ul+'li:gt(5)')。快速切换(“快速”);
};

我试着设置一些
$(窗口)。关注
东西,添加
fadeToggle(“fast”)。preventDefault()
等,但没有任何帮助。有什么想法吗?

完成所需操作的最简单方法是本机的
scrollIntoView()
方法:

document.querySelector('.ul' + l).scrollIntoView({ 
    behavior: 'smooth' 
});
这在所有主要浏览器中都受支持,但如果您需要对旧浏览器(例如IE 10及以下)的支持,则可以使用此功能

根据下面的评论:您确实有一个
文档
对象,我保证:
文档
是每个网页的基础。也就是说,如果愿意,您可以使用jQuery选择器,但在使用
scrollIntoView
(因为它不是jQuery方法)之前,您需要获取底层DOM对象


$('.ul'+l)
中的
l
是什么?你所说的“屏幕保持聚焦”是什么意思?听起来像是在试图控制滚动位置,为此需要
window.scroll()
$(…).animate({scrollTop,…}
,不是焦点。@Akshay抱歉我之前没有提到它-它只是一个for循环迭代器,用于计算要处理的块的数量build@DanielBeck是的,我需要我的滚动位置在点击按钮将其切换回块的顶部。我希望你能帮助我写更多的东西,但我的代码也一样。因为我也尝试了o实现这个窗口。scroll()没有任何效果。谢谢,但因为我没有文档,所以我写的脚本(不正确)如下:
$.fn.myFunc=function(){var ul=$(this).parent().attr('class');
$('.+ul+'li:gt(5).fadeToggle('fast”).scrollIntoView({
行为:'smooth'});};
它在控制台中抛出一个错误
ScrollingToView不是一个函数
您确实有
文档
,每个页面都有,但我已经更新了答案,以显示如何从jquery对象转换。
document.querySelector('.ul' + l).scrollIntoView({ 
    behavior: 'smooth' 
});
$('.ul' + l)[0].scrollIntoView({...});