コードの問題は、を使用してoffset.top
いるが、offset
変数が宣言されていないことです。つまり、.top
は何も返しません。
offset()のjQueryドキュメントを見たようですが、例を正しく理解/読んでいません。
ドキュメントでは、変数を初期化しています。
var offset = $(this).offset();
そして、.top
との.left
値を抽出します。
alert(" coordinates: ( " + offset.left + ", " + offset.top + " ) ");
リンクからWebページを見ると、ユーザーがどれだけスクロールしたかを確認するための非常に大規模なスクリプトは必要ありません。この小さな関数は、必要なものを提供します。
この実用的なフィドルの例を参照してください!
// getPageScroll() by quirksmode.com
function getPageScroll() {
var xScroll, yScroll;
if (self.pageYOffset) {
yScroll = self.pageYOffset;
xScroll = self.pageXOffset;
} else if (document.documentElement && document.documentElement.scrollTop) {
yScroll = document.documentElement.scrollTop;
xScroll = document.documentElement.scrollLeft;
} else if (document.body) {// all other Explorers
yScroll = document.body.scrollTop;
xScroll = document.body.scrollLeft;
}
return new Array(xScroll,yScroll)
}
これについての詳細は、このstackoverflowの回答で見つけることができます。