匿名質問者

jQuery勉強中で、一部参考記事のソースコードが分からなかったので御指南いただけると嬉しいです。


overflow:auto;内のスクロールイベントを実装しているのですが、5行目にある記述「var pos = th.top + sh;」が分かりません。色々と調べてみたのですが理解につながるような参考記事が見当たらず、こちらに質問させていただきました。。

どうぞよろしくお願いいたします!

▼参考記事
http://hack.aipo.com/archives/3385/

▼ソースコード
$(".jump").click(function(){
var target = "#" + $(this).html();
var th = $(target).position();
var sh = $(".scroll").scrollTop();
var pos = th.top + sh;
$(".scroll").animate({
scrollTop: pos
},"slow", "swing");
});

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2016/02/15 16:08:00

ベストアンサー

匿名回答1号 No.1

th.top と sh の値を出してみれば、すぐに分かると思う。
きっと、思っているような数字じゃないはずだ。特に th.top の方が。

参考にしてるページを書いてる人も、よく分からずに書いているんでしょう。
きっと、ソースもどこかのパクリ。
変数名の th や sh は、元のソースでは target height や scroll height のはず。
この命名法で素直につけるなら、tt や st になるはず(自分で書いていたら)。

他6件のコメントを見る
匿名回答1号

分からなくなったら、ドキュメント読もうぜ。

.position()  Returns: Object
Description: Get the current coordinates of the first element in the set of matched elements, relative to the offset parent.

.position() | jQuery API Documentation

英語の意味は正確に分からなくても、"relative" ってところだけ気になれば、後は確認してみれば分かる。

飛び先の chapter 4 (Caption だったね...) などの offset parent は、それを囲んでる ".scroll" 。
".scroll" の天辺が、offset child の top = 0 の位置になります。
# というのは、既に蛇足だね

2016/02/15 15:23:23
匿名質問者

ありがとうございます!大変勉強になりました。
html構造からみて相対位置scrollを見ていたので、変に混同しちゃってました。。
貴重なお時間をありがとうございました!

2016/02/15 16:07:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません