マジリブログ

つらつら書いてます。

scrollfollowが動かない。最新版jquery用に調整する。

サイドなどでメニュー等をスクロールにあわせて付いてくるようにする、
jaueryを使用した便利なスクリプト、scrollfollowですが、
最新版で使う時は少しカスタマイズが必要なのと、
使用時に注意点があって、今日プチはまりしたのでメモです。

自分で用意するのは、jquery.scrollfollow.jsですね。
本家の元データの配布はこちら

見てもらえればすぐ分かりますが、このjsはjqueryが1.5.2で動作確認されてます。
2012年7月11日現在、jqueryの最新バージョンは1.7.2ですが、
1.7.2だとscrollfollowはそのまま動きません。

で、一部カスタマイズが必要なのですが、58行目と59行目を以下のように書き換えます。

 

var parentHeight = parseInt( box.cont.outerHeight() );
var boxHeight = parseInt( box.outerHeight() + ( parseInt( box.css( 'marginTop' ) ) || 0 ) + ( parseInt( box.css( 'marginBottom' ) ) || 0 ) );

 

あと必要なのは、jqueryとjqueryuiですけど、設置するのも面倒なのでgoogleapisを使います。
jqueryの記述はソースをいちいち書くのは面倒なので見てもらうとして、
設置サンプルはこちら

で、注意点ですが、スクロールさせたいエリアは、IDで指定する事と、
そのエリアは更にIDを持つ親要素を持っていないと動作しないのです。

簡単に言うと、スクロールエリアをbody直下に記述したり、
IDの無いdiv配下に記述した場合は、スクロールについていきません。
今日これだけで2時間ハマりました。ファック。

処理的に、id内の指定idに対して有効なようです。
ちなみに、親要素のidは何でも構いません。

サンプルデータが欲しければこちらからどうぞ。zip