offset.left 必要的 css 是什么
本页=> http://api.jquery.com/offset 没有充分解释所涉及的必要 CSS。我读到的与该主题相关的 5 个左右的 SO 问题也没有涉及 CSS 问题。
1) 什么 CSS 会导致 $(this).offset.left
返回 'undefined'?
2)还需要知道哪些其他问题会使offset.left变得复杂(例如,$("object").hide()
会导致offset.left返回未定义吗?等等)
我需要知道什么CSS会杀死offset.left以及什么CSS会返回正确的值。
THNX
This page => http://api.jquery.com/offset does not adequately explain the necessary css involved. Neither do any of the 5 or so SO questions I read , related to this subject touch on CSS issues, either.
1) what CSS will cause $(this).offset.left
to return 'undefined'?
2) It is also necessary to know what other issues will complicate offset.left (eg. will $("object").hide()
cause offset.left to return undefined? etc)
I need to know what CSS will kill offset.left and what CSS will return a proper value.
THNX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
$(this).offset().left
将始终返回一个值。 jQuery 根据浏览器呈现页面元素的框模型来确定该值。CSS 提供了一种通过定义的语言控制偏移值的方法,但是一旦渲染,它总是有一个值。
所以你的问题的答案(以及你之前没有找到你正在寻找的答案的原因)是 jQuery 和 CSS 都在控制/读取底层技术。 jQuery 不读取 CSS 规则。
如果隐藏该元素,则它不再是盒模型的一部分,并且
offset().left
将返回值 0:DEMO: http://jsfiddle.net/9xaCe/
$(this).offset().left
will always return a value. jQuery is determining this value based upon the box model by which browsers render the elements of the page.CSS provides a way to control the offset values via a defined language, however once rendered it always has a value.
So the answer to your question (and the reason you have not found the answer you are looking for before) is that jQuery and CSS are both controlling/reading an underlying technology. jQuery is not reading CSS rules.
If you hide the element then it is no longer part of the box model, and
offset().left
will return a value of 0:DEMO: http://jsfiddle.net/9xaCe/
您引用的页面说:
如果元素被隐藏,那么我猜
.offset
将返回undefined
。所以你的问题2的答案是肯定的。The page you referenced says:
If the element is hidden then I guess
.offset
will returnundefined
. So the answer to your question 2 is yes.