.offset()
In this chapter you will learn:
- Syntax and Description for .offset() getter
- How to print offset for an event
- Syntax and Description for .offset() setter
- How to reposition an element
Syntax and Description for .offset() getter
.offset() (getter)
gets the current coordinates of the first element in the set of matched elements relative to the document.
Its return value is an object containing the properties top and left.
.offset()
retrieves the current
position of an element relative to the document.
.position()
retrieves the current
position relative to the offset parent.
The following code gets the offset of last b
tag.
<html><!--from ja va2s . c o m-->
<head>
<script src="http://java2s.com/style/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var b = $("b:last");
var offset = b.offset();
alert(offset.left);
alert(offset.top);
});
</script>
</head>
<body>
<body>
<b>Hello java2s.com java2s.com</b>
</body>
</html>
Offset from an event
The following code prints out offset from an event.
<html><!--from ja v a 2 s . com-->
<head>
<script src="http://java2s.com/style/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("*", document.body).click(function (e) {
var offset = $(this).offset();
e.stopPropagation();
alert(this.tagName +
" coords ( " +
offset.left +
", " +
offset.top + " )");
});
});
</script>
</head>
<body>
<body>
<b>Hello java2s.com java2s.com</b>
</body>
</html>
Syntax and Description for .offset() setter
.offset(coordinates) setter
sets the current coordinates of the first element
in the set of matched elements relative to the document.
coordinates
is an object containing the top and left properties.
Return value is the jQuery object, for chaining purposes.
.offset()
setter method moves an element to new position.
The element's position is specified relative to the document.
The following code gets the offset of a div with an id of "box", and displays the left and top properties with an alert box:
<!DOCTYPE html><!-- j ava 2s . co m-->
<html>
<head>
<style type="text/css">
div {
position: absolute;
left: 10px;
top: 50px;
width: 20px;
height: 20px;
background-color: green;
}
</style>
<script src="http://java2s.com/style/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function() {
$("div#box").click(function() {
var pos = $(this).offset();
$("#watcher").text(pos.top + ":" + pos.left);
});
});
</script>
</head>
<body>
<p>
Where is the box? <span id="watcher">java2s.com</span>
</p>
<div id="box"></div>
</body>
</html>
Reposition an element
We can use .offset()
setter to reposition an element.
$(selector).offset(coordinatesObject);
where coordinatesObject is any object that contains a top and left property set to integer values. For example:
<!DOCTYPE html><!--from j av a 2s .com-->
<html>
<head>
<style type="text/css">
div {
position: absolute;
left: 10px;
top: 50px;
width: 20px;
height: 20px;
background-color: green;
}
</style>
<script src="http://java2s.com/style/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function() {
$("div#box").click(function() {
var pos = $(this).offset({
top:100,
left:100
});
$("#watcher").text(pos.top + ":" + pos.left);
});
});
</script>
</head>
<body>
<p>
Where is the box? <span id="watcher"></span>
</p>
<div id="box"></div>
</body>
</html>
Next chapter...
What you will learn in the next chapter: