Javascript 如何在js中向上滚动到另一个div中的div?

Javascript 如何在js中向上滚动到另一个div中的div?,javascript,jquery,Javascript,Jquery,当我点击一个按钮时,我想将窗口向上滚动到一个特定的div(temp类)。 我试过了,但没用。我想这是因为CSS风格。但是我不能删除这些样式。 下面是我的代码 <body> <div class="m-portlet m-portlet-no-bdr"> <div class="abc">{{}}</div> <div class="abc">{{}}</div> <div class="abc"

当我点击一个按钮时,我想将窗口向上滚动到一个特定的div(temp类)。 我试过了,但没用。我想这是因为CSS风格。但是我不能删除这些样式。 下面是我的代码

<body>
<div class="m-portlet m-portlet-no-bdr">
    <div class="abc">{{}}</div>
    <div class="abc">{{}}</div>
    <div class="abc">{{}}</div>
    <div class="temp-class">{{}}</div>
    <div class="abc">{{}}</div>
</div>

 .m-portlet-no-bdr {
        min-height: calc(100vh - 130px);
        overflow-y: auto;
        max-height: calc(100vh - 172px);
        overflow-x: hidden;
 }

$('.m-portlet-no-bdr').animate(
{
  scrollTop: $('.m-portlet-no-bdr').scrollTop() + ($('.temp-class').offset().top - $('.m-portlet-no-bdr').offset().top)
});

{{}}
{{}}
{{}}
{{}}
{{}}
.m-portlet-no-bdr{
最小高度:计算(100vh-130px);
溢出y:自动;
最大高度:计算(100vh-172px);
溢出x:隐藏;
}
$('.m-portlet-no-bdr')。动画(
{
scrollTop:$('.m-portlet-no-bdr').scrollTop()+($('.temp class').offset().top-$('.m-portlet-no-bdr').offset().top)
});

使用[document.documentElement,document.body]而不是“.m-portlet-no-bdr”:

$([document.documentElement, document.body]).animate({
    scrollTop: $(".temp-class").offset().top
}, 2000); 

参见游乐场中的示例:

我用下面的方法解决了问题

  $('.m-portlet-no-bdr').animate(
   {
    scrollTop: $('.m-portlet-no-bdr').scrollTop() + $('*:contains('+errors[0]+'):last').offset().top - 172
  });
我之前做的是,我在存在“错误[0]”的地方添加了“临时类”

$(':contains("' + errors[0] + '")').addClass('temp-class');
我想这就是问题所在。我可以用这种方法解决这个问题。
干杯

你试过锚元素法吗?通过单击它,它将在删除style=“height:500px”后自动移动到具有该类的元素,它不会变暖…只需复制并粘贴更多的“{}”,我需要的是在事件触发后“{}”应该位于屏幕顶部。