はてなブログに移行して2週間。カスタマイズも落ち着き、しっかり稼働させることができています。
しかし、ふとPC版でブログを眺めてると、何か違和感が・・・。
あれ?被ってる?
何故か被る
ブログのサイドバーは、一番下に楽天アフィリエイトのバナーを設置しています。
更に、そのバナーはスクロールすると固定されるようにし、人気記事ランキングの下をスクロールすれば、そこで固定されるはず。
ところが、上手くいかず、「注目の人気記事」までいったところでぴよっと出てきて固定化され、被ってしまう現象。。。
ソースを見ても問題ありそうな箇所はなく、謎は深まるばかり。
ちなみにソースはこんな感じ。
$(function(){
var sideLast = $("#box2-inner>div:last-child");
var sideLastTop = sideLast.offset().top;
var sideLastWidth = sideLast.width();
var win = $(window);
win.scroll(function(){
if(win.scrollTop() > sideLastTop) {
sideLast.css("position",'fixed');
sideLast.css("top",'20px');
sideLast.css("width",sideLastWidth);
}else{
sideLast.css("position",'relative');
};
});
});
悩むこと小一時間、ググってると、ようやく答えが見つかりました。
$(window).load(function()とすれば解決
それがこの記事。
僕と全く同じ現象。どうやらjQueryの読み込む順番に問題がある様子。
後は、記事に書いてある通り、
「$(function($) {」という部分を、「$(window).load(function() {」
に変更すると・・・
さっきまではここまでスクロールすると上に被りにきてた楽天バナーが下にちゃんとあります!
更にスクロールすると、問題なく固定化されました。
ソースは何も問題ないはずなのに、どうすればいいのか結構焦ってたんで、とても感謝!
ググればなんとかなりますね。バグというほどでもありませんでした、はい。