jQueryでサイドバー追尾させる記述
-
ちょっと場違いかもしれませんが知恵を貸していただけたら助かります。
あるサイトで提示されていた下記スクリプトなのですが、サイトバーごと追尾させる場合、下記記述だとサイドバーの一番上の要素に差し掛かったときに追尾開始されてしまうのですが、これをサイトバーの一番したの要素の底辺(つまりサイドバーの一番下)に差し掛かったら追尾開始させたいのですがどうすればいいか教えて頂けたら助かります。$(function(){
var target = $(“.fixed-item”);
var footer = $(“footer”)
var targetHeight = target.outerHeight(true);
var targetTop = target.offset().top;$(window).scroll(function(){
var scrollTop = $(this).scrollTop();
if(scrollTop > targetTop){
// 動的にコンテンツが追加されてもいいように、常に計算する
var footerTop = footer.offset().top;if(scrollTop + targetHeight > footerTop){
customTopPosition = footerTop – (scrollTop + targetHeight)
target.css({position: “fixed”, top: customTopPosition + “px”});
}else{
target.css({position: “fixed”, top: “10px”});
}
}else{
target.css({position: “static”, top: “auto”});
}
});
});また別件(トップページへ戻る)でウィンドウトップから指定した距離を通過したらトップページへ戻るボタンを表示させているのですが、フッターの上ぐらいで消したいと思い、ウィンドウの下からフッターの高さ分たしたところで制御かけようと思い下記記述を設けました。
[一部抜粋]
var pagetop = jQuery(‘.pagetops’);
jQuery(window).scroll(function () {
if (jQuery(this).scrollTop()+jQuery(this).height() + 400px) {
pagetop.fadeOut();
}しかしうまく動作しないくてjQuery(this).scrollTop()+jQuery(this).height()で値取得できてるのかな~と思うのですが、何がおかしいと思われますか?
・参考サイト
http://iwb.jp/jquery-scrolltop/失礼します。
追記
offset().bottomという関数はないらしいのでtargetTop + targetHeightでBottomが割り出せるはずなのですが、Bottomを少し通り過ぎてから動作するのですが、これはtargetTop + targetHeight – ●pxで調整するしかないのでしょうか?
- トピック「jQueryでサイドバー追尾させる記述」には新たに返信することはできません。