首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取容器顶部与单击的元素之间的差异

获取容器顶部与单击的元素之间的差异
EN

Stack Overflow用户
提问于 2018-07-17 03:43:46
回答 1查看 24关注 0票数 0

我正在尝试创建一个容器,其中包含所有具有相同类的子类。

我试图得到被点击的div和容器顶部之间的差异,然后将被点击的div动画化为容器的顶部。

我得到的结果好坏参半。当它工作时,它将动画,然后重新激活容器的位置回到其原始位置。

谁能给我一些关于为什么它不能正常工作的见解?

下面的代码。

代码语言:javascript
运行
复制
    <style>
#contact-list-scroller {
    position: absolute;
    left: 0px;
    top: 0px;
    right: 0px;
    bottom: 0px;
    background: Silver;
    overflow:scroll;
    width: 200px;
}

#contact-list-scroller div {
    background: white;
    width: 150px;
    height: 150px;
    border: 1px solid Gray;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div style="position:relative; width:150px; height:100vh;">
<div id="contact-list-scroller">
   <div class="test" id="contact_8965">stuff1</div>
   <div class="test" id="contact_8966">stuff2</div>
   <div class="test" id="contact_8967">stuff3</div>
   <div class="test" id="contact_8968">stuff4</div>
   <div class="test" id="contact_8969">stuff5</div>
   <div class="test"></div>
   <div class="test"></div>
   <div class="test"></div>
   <div class="test"></div>
   <div class="test"></div>
</div>
</div>
<script>
$('.test').click(function(){

var contactTopPosition = $(this).offsetTop;
var containerTop = $('#contact-list-scroller').scrollTop();
var heightDifference = containerTop - contactTopPosition;
console.log(contactTopPosition + ' contactTop');
console.log(containerTop + ' containerTop');
console.log(heightDifference + ' heightDifference');

//$("#contact-list-scroller").scrollTop(contactTopPosition);
$("#contact-list-scroller").animate({scrollTop: heightDifference,
    complete: $(this).unbind()
  });
});

</script>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51369095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档