
GalleryViewのカスタマイズについて
jqueryのプラグイン、GalleryViewを使っています。
http://spaceforaname.com/galleryview
デモ
http://spaceforaname.com/gallery-light.html
現状はデモ通りに使用していますが、左端にクリックしたサムネイルがきたときだけ、そのimgにclassを
付加させたいと思っています。しかしうまくいかず困ってます。
最新版はver2のようですが、仕様が変わっており、また作者による解説もないためデモと同じver1.1使用しています。
ご教授ください。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
まとめ
jquery.galleryview-1.1.js
-------------------------------------------------
// 90行目あたり
enableFrameClicking();
// imgが移動
var img = $(j_frames[iterator]).find('img');
img.attr('class', 'hoge');
// ----------
});
-------------------------------------------------
// 106行目あたり
enableFrameClicking();
// 枠の方が移動してくる(img少数)時
img = $(j_frames[iterator]).find('img');
img.attr('class', 'hoge');
// ----------
});
-------------------------------------------------
// 120行目あたり
function showNextItem() {
// class名があれば削除(対象全走査)
j_frames.each(function(i){
var img = $(j_frames[i]).find('img');
if (img.attr('class')) img.attr('class', '');
});
$(document).stopTime("transition");
-------------------------------------------------
// 130行目あたり
function showPrevItem() {
// class名があれば削除(対象全走査)
j_frames.each(function(i){
var img = $(j_frames[i]).find('img');
if (img.attr('class')) img.attr('class', '');
});
$(document).stopTime("transition");
-------------------------------------------------
// 160行目あたり
$(this).click(function() {
$(document).stopTime("transition");
// class名があれば削除(対象全走査)
j_frames.each(function(i){
var img = $(j_frames[i]).find('img');
if (img.attr('class')) img.attr('class', '');
});
showItem(i);
iterator = i;
-------------------------------------------------
// 403行目あたり
has_filmstrip = j_frames.length > 0;
// 始動時のimg
if (has_filmstrip) $(j_frames[0]).find('img').attr('class', 'hoge');
if(!has_panels) opts.panel_height = 0;
-------------------------------------------------
No.4
- 回答日時:
>>No.3まとめ
// 106行目あたり
enableFrameClicking();
// 枠の方が移動してくる(img少数)時
var img = $(j_frames[iterator]).find('img'); // var 追記
img.attr('class', 'hoge');
// ----------
});
ごめん「var」抜け。
こちらでも動作確認し全く問題ありませんでした。
やりたいことを全部実装してもらって大変助かりました。
本当にありがとうございました。
No.2
- 回答日時:
>>No.1補足
jquery.galleryview-1.1.js
-------------------------------------------------
// 40行目あたり
/************************************************/
/*Plugin Methods*/
/************************************************/
function showItem(i) { // フラグ仮引数削除
//Disable next/prev buttons until transition is complete
-------------------------------------------------
-------------------------------------------------
// 90行目あたり
enableFrameClicking();
// class名(hoge)設定
// j_frames[iterator]は親要素
var img = $(j_frames[iterator]).find('img');
img.attr('class', 'hoge');
// if文削除
});
-------------------------------------------------
-------------------------------------------------
// 160行目あたり
$(this).click(function() {
$(document).stopTime("transition");
// class名があれば削除
var img = $(j_frames[iterator]).find('img');
if (img.attr('class')) { img.attr('class', ''); }
showItem(i); // フラグ無しで呼出し
// ----------
iterator = i;
-------------------------------------------------
始動まではclass無しですけど、それぞれ変更してみて下さい。
No.1
- 回答日時:
以下に示す箇所にコード追加してみて下さい。
jquery.galleryview-1.1.js
-------------------------------------------------
// 40行目あたり
/************************************************/
/*Plugin Methods*/
/************************************************/
function showItem(i, flag /* click呼出しフラグ */) {
//Disable next/prev buttons until transition is complete
-------------------------------------------------
// 90行目あたり
enableFrameClicking();
// class名(hoge)設定
if (flag /* click呼出し */) {
// j_frames[iterator]は親要素
var img = $(j_frames[iterator]).find('img');
img.attr('class', 'hoge');
}
// ----------
});
-------------------------------------------------
// 120行目あたり
function showNextItem() {
// class名があれば削除
var img = $(j_frames[iterator]).find('img');
if (img.attr('class')) img.attr('class', '');
// ----------
$(document).stopTime("transition");
-------------------------------------------------
// 130行目あたり
function showPrevItem() {
// class名があれば削除
var img = $(j_frames[iterator]).find('img');
if (img.attr('class')) img.attr('class', '');
// ----------
$(document).stopTime("transition");
-------------------------------------------------
// 160行目あたり
$(this).click(function() {
$(document).stopTime("transition");
// class名があれば削除
var img = $(j_frames[iterator]).find('img');
if (img.attr('class')) { img.attr('class', ''); }
showItem(i, true); // フラグ付きで呼出し
// ----------
iterator = i;
-------------------------------------------------
左端に来たタイミング。抜けるタイミングで対象要素にアクセスできます。
あとは適当にどうぞ。
この回答への補足
回答ありがとうございます。
コードを追加したところ問題なく動きました。
追加で伺いたいのですが、左右の矢印を押したときや、サムネイルが自動でスクロールしているときにも、常に左端のimgにclassを持たすことは難しいでしょうか。
可能でしたらお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
1つのform内に2つのsubmitボタ...
-
5
動的に生成したボタンのイベン...
-
6
VBAで単語テストを作りたいんで...
-
7
別フォームからdatagridviewの削除
-
8
javascriptでtableの該当行を削...
-
9
IEの[ツールバー]-[標準のボタ...
-
10
submitボタン押下時にPOSTされ...
-
11
リロードしないようにするには
-
12
javascriptでクイズ
-
13
jQuery、JSONの結合方法
-
14
クイズ作成:15個の問題から5個...
-
15
alert閉じた時、htmlに文章を追...
-
16
二択質問作ってその成績表を横...
-
17
給料日って最短は何時からおろ...
-
18
VBA テキストボックスの計算
-
19
VBAでユーザーフォームの表示を...
-
20
VBAで当月の1日を表示するには...