jQuery offset( ) 方法

Posted 乱舞春秋__

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery offset( ) 方法相关的知识,希望对你有一定的参考价值。

通过jQuery 的offset( )方法,我们可以设置或者获取被选元素相对于文档的位置。需要注意的是,当我们获取被选元素的位置时,只会返回匹配到的第一个元素的位置。当我们设置被选元素的位置时,将会设置所有匹配到的元素的位置。

注意:该方法返回的是一个包含left和top属性的对象。

(1)获取位置

语法格式:

$(selector).offset() 

(2)设置位置

语法格式:

常规方式

$(selector).offset({top:value,left:value})

函数方式

$(selector).offset(function(n,current)) 

其中,n为匹配到的元素的索引,current为元素的当前位置

示例:

1.获取位置

(1)两个DIV元素,只返回第一个匹配到的DIV的位置:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="../jQuery/jQuery.js"></script>
	<script>
		$(document).ready(function(){
			var position = $("div").offset();
			console.log(position);
		})
	</script>
	<style>
		.one {
			position: absolute;
			left: 100px;
			top: 100px;
			width: 100px;
			height: 100px;
			background-color: rgba(38, 172, 26, 0.644);
		}
		.two {
			position: absolute;
			left: 200px;
			top: 200px;
			width: 100px;
			height: 100px;
			background-color: rgba(53, 26, 172, 0.644);
		}
	</style>
</head>
<body>
	<div class="one"></div>
	<div class="two"></div>
</body>
</html>

控制台输出:

2.设置位置

(1)常规方式

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="../jQuery/jQuery.js"></script>
	<script>
		$(document).ready(function(){
			$("button").click(function(){
				$(".para").offset({
					left:100,
					top:100
				})
			})
		})
	</script>
	<style>
		.para {
			position: absolute;
			left: 50px;
			top: 50px;
			background-color: rgba(38, 172, 26, 0.644);
		}
	</style>
</head>
<body>
	<button>按钮</button>
	<p class="para">我是一个段落。</p>
</body>
</html>

 

点击按钮,P元素的位置将会发生改变:

(2)函数方式

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="../jQuery/jQuery.js"></script>
	<script>
		$(document).ready(function(){
			$("button").click(function(){
				$("div").offset(function(n,current){
					var newPosition = new Object();
					newPosition.left = current.left + 200;
					newPosition.top = current.top + 200;
					return newPosition;
				})
			})
		})
	</script>
	<style>
		.one {
			position: absolute;
			left: 50px;
			top: 50px;
			width: 100px;
			height: 100px;
			background-color: rgba(38, 172, 26, 0.644);
		}
		.two {
			position: absolute;
			left: 100px;
			top: 100px;
			width: 100px;
			height: 100px;
			background-color: rgba(53, 26, 172, 0.644);
		}
	</style>
</head>
<body>
	<button>按钮</button>
	<div class="one"></div>
	<div class="two"></div>
</body>
</html>

点击按钮,两个DIV的位置都会被改变:

以上是关于jQuery offset( ) 方法的主要内容,如果未能解决你的问题,请参考以下文章

jQuery---offset方法和position方法

jQuery offset( ) 方法

jquery offset positon 获取位置不准的解决方法

几个有用的JavaScript/jQuery代码片段(转)

如果用户没有使用浏览器,则jQuery计时器停止

几个可以直接拿来用的jQuery代码片段