【问题标题】:How to scroll to nth-child using jquery?如何使用 jquery 滚动到第 n 个孩子?
【发布时间】:2021-04-15 06:38:43
【问题描述】:

您好,使用Jquery 如何将元素(使用overflow)滚动到子元素?

<span id="gran">
 <span id="parent">
  <div class="a">
   Casa
  </div>
  <div class="a">
   Casa
  </div>
  <div class="a">
   Casa
  </div>
  <div class="a">
   Casa
  </div>
  <div class="a">
   Casa
  </div>
 </span>
</span>

#gran {
overflow: auto;
}

我想滚动 #gran 到类 a 的第三个元素,所以我尝试了这个但不起作用:

 $("#gran").scrollTo('#parent > div:nth-child(3)'); 

希望得到你的帮助 :) 非常感谢,对不起我的英语

【问题讨论】:

  • nesting-div-within-span-problem?? .. 还有span:nth-child(3) 是span还是div??在 html 中它是一个 div 在 jquery 代码中它是一个跨度??
  • @Mohamed-Yousef 对不起,我编辑了 jquery....但是还不行

标签: javascript html jquery


【解决方案1】:

这是可以做到的

  • 您需要设置max-heightoverflow : auto 以使元素可滚动,否则它将在没有滚动条的情况下继续扩展.. 如果您需要使用文档/正文滚动条,请使用$('body , html') Smooth scroll to div id jQuery

  • 您需要将animate() 函数与scrollTopoffset()/position() 一起使用

//$("#gran").scrollTo('#parent > div:nth-child(3)');

$(document).ready(function(){
  $('#gran').animate({
      scrollTop: - $('#gran').offset().top + $("#parent > div:nth-child(3)").offset().top
  }, 2000);
});
#to_remove{
  background : red;
  height : 100px;

}

#gran {
overflow: auto;
max-height : 500px;
}
.a{
  height : 300px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="to_remove"></div>

<div id="gran">
 <div id="parent">
  <div class="a">
   Casa 1
  </div>
  <div class="a">
   Casa 2
  </div>
  <div class="a">
   Casa 3
  </div>
  <div class="a">
   Casa 4
  </div>
  <div class="a">
   Casa 5
  </div>
 </div>
</div>

【讨论】:

  • 您的代码运行良好,但我不明白为什么在我的情况下(html 在父溢出内有 3 个 div 有点困难)nth-child 仅适用于“偶数”跨度>
  • @Borja 如果您在 prrent 中只有 3 个 div,并且您的代码尝试滚动到第三个/最后一个,它会滚动到第三个 div 高度.. 如果它的高度更小#gran 高度它肯定不会滚动到 #gran 的顶部 .. 因为它不再有滚动条滚动的高度/内容
  • Nooo 真是个​​奇怪的问题...对于奇数 nth-child 我有错误“无法访问属性“top””但如果是偶数 nth-child (2-4-6 ecc) 有效好吧。什么!?!? :D
  • @Borja 如果您有一个实时网站,让我为您检查一下
  • 不是文件...也许问题出在每个 div(子)的某些属性上。也许它可以有 display: inline ?
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 2019-12-13
  • 2021-05-30
  • 1970-01-01
  • 2014-10-06
相关资源
最近更新 更多