1
1
jQueryでスムーススクロールを実装するためのコードを解説しているサイトの大半は、下記のようなコードになっています。
$(function(){ $('a[href^="#"]').click(function(){ var adjust = 0; var speed = 400; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top + adjust; $('body,html').animate({scrollTop:position}, speed, 'swing'); return false; }); });
hrefが#で始まるa要素をクリックした場合に処理が実行されるようにしているにも関わらず、なぜhrefが空の場合を考慮する記述がなされているのでしょうか。
hrefが空の場合「hrefが#で始まるa要素」という条件に該当しないため、そもそも処理が実行されないのではないでしょうか。
いろいろなサイトを見ましたが、私が確認する限りでは全てのサイトで同様の記述がされています。
実際にhrefが空のa要素をクリックすると、スムーススクロールが実行されず一瞬でページトップに移動します。
この挙動はjQueryのコードがあってもなくても同じです。
多くの解説サイトで、hrefが空の場合を考慮する記述がされている理由をご存知の方がいれば教えていただけないでしょうか。
回答2件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。