Side navigation
#11542 closed bug (fixed)
Opened April 01, 2012 12:31PM UTC
Closed October 25, 2012 03:43AM UTC
Last modified October 29, 2012 04:44PM UTC
body.offset() is assumed always 0,0
| Reported by: | atirip | Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | None |
| Component: | offset | Version: | 1.7.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
jQuery assumes that body.offset() is always {0,0}, but this is wrong.
http://bkp.ee/atirip/bugs/jbug.html
<!DOCTYPE html>
<title> jquery position bug</title>
<style>
html {
background: #3F434C;
height: 100%;
}
body {
width: 100%;
max-width: 640px;
min-width: 320px;
height: 100%;
margin: 0 auto;
background: #DDD;
}
</style>
<div></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$(function(){
alert( $('div').position().left );
});
</script>
Expected result for alert is 0 (for windows wider than 640px), but depending on window width, real body.offset.left is returned.
Proposed fix: assume body as normal html element in offset module
Attachments (0)
Change History (5)
Changed April 01, 2012 01:13PM UTC by comment:1
| component: | unfiled → offset |
|---|---|
| priority: | undecided → low |
| status: | new → open |
Changed September 17, 2012 05:54PM UTC by comment:2
| keywords: | → 1.9-discuss |
|---|
Changed October 14, 2012 10:26PM UTC by comment:3
+1, I'm weary of people who are fitzing with body, but we should investigate.
Changed October 25, 2012 03:43AM UTC by comment:4
| resolution: | → fixed |
|---|---|
| status: | open → closed |
Fix #11542. document.body should not be special in .offset() and document.documentElement is the default element.offsetParent. Close gh-899.
Changeset: b398a68333d5eb9859fabb1ceabe84a1a753760a
Changed October 29, 2012 04:44PM UTC by comment:5
| keywords: | 1.9-discuss |
|---|
Please read the text in the red box and provide a testcase on jsfiddle the next time. Thanks :)
Simplified testcase: http://jsfiddle.net/wSFTd/