lightboxとPage Scroller併用でどちらかが動作しない

スラマッパギ!!

今日制作していて問題にぶち当たりました!
ページの任意の場所にスムーズに移動することができるPage Scrollerと
画像をぶいーーんって拡大することができるlightboxを併用実装するとどちらかが動作しないorz

もちろんググりました!!

おkおkそういう事ね(゜д゜)!!
下記で説明させていただきます。

スクリプトのベースとなるライブラリ間の衝突

lightboxはprototype.js、Page ScrollerはjQueryというライブラリをベースに作られたプラグインなので、後に置かれたライブラリが優先されるみたいです。
衝突を回避する方法ですが、調べたらいくつかありました。

まず簡単な方法が使う汎用ライブラリを1本に絞る、つまりlightboxはやめてjQueryを使った
lightboxのようなライブラリを探すという方法です。
今回のjQueryとprototype.jsのように複数の汎用ライブラリを読み込むのも、HTTPリクエストの回数は増えますし
処理が増えて遅くなりそうで嫌だな…という感覚もあります。
なので個人的にはこの方法がベストかと(´・ω・`)

二つ目の方法がjQueryには他のライブラリとの間で「$」の衝突を避けるためのnoConflictメソッドがあります。
このメソッドを使って、衝突を回避できるみたいです。

下記引用です。

サンプル1
この例では、$はjQueryによって上書きされずに他のライブラリで定義された動作をします。


サンプル2
この例では、$はjQueryによって上書きされずに他のライブラリで定義された動作をするが、 引数で$を受け取った関数のスコープ内ではjQueryオブジェクトとしての$として動作する。 これによって、jQueryのプラグインなどの中では安全にjQueryオブジェクトとしての$を利用でき、スコープの外では他のライブラリに$を開放することができる。


サンプル3
$ではない文字列にjQueryオブジェクトを割り振る。ここでは、'j'の文字をjQueryオブジェクトとし、$は用いないように。 この方法は汎用的なライブラリを作ることにも利用することにも向かないため、極めて限定的な用途になると考えられる。

上記のサンプル2が参考になると思います(´・ω・`)
関数の仮引数として「$」の文字を使い、そこに引数としてjQueryオブジェクトを渡してやると、関数内では同じようにjQueryオブジェクトとしての「$」を使用できるみたいです

それかサンプル1のようにjQueryオブジェクトを使う際には「$」を使うのをやめて、jQueryと書き換えてもいいかもです。全ての$を置き換えるのは面倒ですが、テキストエディタの置換機能を使うとそれほど難しくないと思います。




ページトップへ


SIDE MENU

ホームページ制作
ホームページ制作
ばら売りパーツ
初期費用0円
コンサルティング
SEO対策アクセス解析
お役立ちツール
HTML・CSS関連
ホームページ制作関連リンク集
厳選リンク集
ホームページ制作日記
ホームページ制作講座
DTP&MOVIE制作
DTPMOVIE
アフターサポートについて
アフターサポートについて

Twitter


運営者情報

運営者氏名:辻川 智也(ツジガワ トモヤ)
>>サイトマップ

個別画像、素材制作について

大きいものから小さいもの、数点から一点まで
お客さものご希望通り画像素材の
制作も行っております。
>>詳細はこちら

アフターサポートについて

アフターサポートには特に力を入れているので
ご安心ください。もちろん基本的なアフターサポート
については無料で行っております。
>>詳細はこちら

ホームページ制作対応エリア

福岡、熊本、佐賀、長崎、大分、宮崎、鹿児島で格安にてホームページ制作をお考えの場合、お伺いし詳しくご説明いたします。また、日本全国どこでもホームページ制作、リニューアルなどのご相談、よりデザインのよいサイトをもっと格安でを作りたい、お見積りなど受け付けておりますので、お気軽にお問い合わせください。

ホームページ制作無料 サイト登録 – Paseon みんなの検索サイト!
スペース素材
テンプレート素材