javascript – jQuery offset().top返回错误的值 – 带边距的错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery offset().top返回错误的值 – 带边距的错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1659字,纯文字阅读大概需要3分钟。
内容图文
![javascript – jQuery offset().top返回错误的值 – 带边距的错误](/upload/InfoBanner/zyjiaocheng/700/e0fcf9f82a7d490dbffad6a3ec740c64.jpg)
如果您尝试从父级中的列表元素获取顶部偏移量,并且该父级位于顶部,则会得到错误的值.
http://jsbin.com/yuxacuduna/1/edit?html,css,js,console,output
尝试删除.container元素上的margin-top,你会发现它会起作用.
这个问题的解决方案是什么?
解决方法:
你的问题:
这个问题的解决方案是什么?
我建议你把.container定位到亲戚:
.container{
margin-top:100px;
background:yellow;
height:600px;
width:300px;
overflow-y:auto;
overflow-x:hidden;
position:relative; /*<---add this*/
}
在你的脚本中使用.position().top,它会让你的生活更轻松:
$('.container li:nth-child(7)').css("background", "red");
$('.container').animate({
scrollTop: $('.container li:nth-child(7)').position().top
});
.offset()顶部.:
描述:获取相对于文档的匹配元素集中第一个元素的当前坐标.
.POSITION()顶部.:
来自文档:
描述:获取相对于偏移父元素的匹配元素集中第一个元素的当前坐标.
.position().如果父级相对定位,则从顶部到父级计算.
$(function() {
$('.container li:nth-child(7)').css("background", "red");
$('.container').animate({
scrollTop: $('.container li:nth-child(7)').position().top
});
});
html,
body {
margin: 0;
padding: 0;
}
.container {
margin-top: 100px;
background: yellow;
height: 600px;
width: 300px;
overflow-y: auto;
overflow-x: hidden;
position: relative;
}
.container ul {
margin: 0;
padding: 0;
list-style: none outside none;
}
.container li {
background: blue;
display: block;
height: 150px;
width: 100%;
padding: 10px;
margin-bottom: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<ul>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd77</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
<li>asdasd</li>
</ul>
</div>
内容总结
以上是互联网集市为您收集整理的javascript – jQuery offset().top返回错误的值 – 带边距的错误全部内容,希望文章能够帮你解决javascript – jQuery offset().top返回错误的值 – 带边距的错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。