当我使用jquery .offset()或.position()函数时,它们总是返回未定义的。当我在控制台中键入它们时,会得到相同的结果,但是eval(?)返回正确的值。这是为什么?我是jquery的新手,所以有点困惑。
html:
<!DOCTYPE html>
<head>
<title>r</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="style.css">
<script src="index.js"></script>
</head>
<body>
<div class="container">
<div class="inner">
</div>
</div>
</body>
css:
body {
height: 100%;
width: 100%;
}
.container {
width: 100%;
position: relative;
float: left;
background: #fff;
height: 1200px;
}
.inner {
width: 150px;
height: 100px;
position: absolute;
top: 20%;
left: 10%;
background: red;
}
js:
var offset = $(".inner").offset();
$(window).scroll(function(event) {
var st = $(this).scrollTop();
$(".inner").css("left", st + offset.left);
});