0

私は初心者で、1ページスクロールのWebサイトでスムーズなスクロールをしようとしています。ここからこのコードを見つけました

$(function () {
    $('a[href*=#]:not([href=#])').click(function () {
        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
            if (target.length) {
                $('html,body').animate({
                    scrollTop: target.offset().top
                }, 1000);
                return false;
            }
        }
    });
}); 

それは完全に機能しますが、問題は私がそれを理解していないことです! 誰かが私のためにそれを説明できますか?

PS - これがスタックオーバーフローにとって有効な質問かどうかはわかりません。教えていただけない場合は、この投稿を削除してください。

ありがとう

4

1 に答える 1

2
$(function() {
//^^^^ by this code start on dcocument load
$('a[href*=#]:not([href=#])').click(function() {
 //^^^^ set selector  (anchor tag) 
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') &&          location.hostname == this.hostname) {
  var target = $(this.hash);
  target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
  if (target.length) {
  // ^^^^check target length is exist in target hash coming if this exist then go in if othervise not
    $('html,body').animate({
     //^^^^ here html and body animate 
      scrollTop: target.offset().top
     //^^^^ get target scroll top position and move html,body scroll to this position
    }, 1000);
    return false;
  }
}
});
});
于 2013-11-07T11:13:16.670 に答える