よろしくお願いします。
下のコードでmain_photoの画像を切り替えるボタンをliに設定しました。
デザイン的にこのリストをpain_photoで表示される画像の上に重ねたいのですが、うまくく行きません。
<div id="photo_container">
<!-- #thumbnail -->
<ul id="thumbnail">
<li><a href="image/1.jpg"><img src="image/thumb/1.jpg" alt="photo1" /></a></li>
<li><a href="image/2.jpg"><img src="image/thumb/2.jpg" alt="photo2" /></a></li>
:
:
</ul>
<!-- /#thumbnail -->
<!-- #main_photo -->
<div id="main_photo">
</div>
<!-- /#main_photo -->
</div><!-- /#photo_container -->
CSSはこのようになっています。
#thumbnail{
overflow: hidden;
width: 330px;
}
#thumbnail li{
float: left;
}
#thumbnail li img{
width: 100%;
filter: alpha(opacity=50);
}
#thumbnail li.current img{
opacity: 1;
filter: alpha(opacity=100);
}
#main_photo{
position: relative;
}
#main_photo img{
position: absolute;
top:0;
width: 100%;
}
何卒宜しくお願い申し上げます。
No.1
- 回答日時:
多分、小さなサムネイル画像をクリックすると、その下のメイン画像が切り替わる例として、どこかの紹介サイトを丸ごとコピペしたものと見受けられる。
jqueryを使うといっておきながら、肝心のjava scriptが無い。
java scriptの記述も結構大変なので、本当はcss+htmlだけで出来る例を探したほうが良いと思う。
①以下のjava scriptを</body>の直前に先ず入れる。
②それから、画像のサイズなどを見ながら調整する。
<script src="https://ajax.googleapis.com/ajax/
libs/jquery/1.11.1/jquery.min.js"></script>
<script>
// 横幅などの設定
var options = {
maxWidth : 520, // #photo_container の max-width を指定(px)
thumbMaxWidth : 80, // #thumbnail li の max-width を指定(px)
thumbMinWidth : 60, // #thumbnail li の min-width を指定(px)
fade : 500 // フェードアウトするスピードを指定
};
$(function(){
// 変数を作る
var thumbList = $('#thumbnail').find('a'),
mainPhoto = $('#main_photo'),
img = $('<img />'),
imgHeight;
// 親ボックスと li 要素に max-width 指定
$('#photo_container').css('maxWidth', options.maxWidth);
// li 要素の横幅の計算と指定
var liWidth = Math.floor((options.thumbMaxWidth / options.maxWidth) * 100);
$('#thumbnail li').css({
width : liWidth + '%',
maxWidth : options.thumbMaxWidth,
minWidth : options.thumbMinWidth
});
// 最初の画像の div#main_photo へ表示と current クラスを指定
img = img.attr({
src: $(thumbList[0]).attr('href'),
alt: $(thumbList[0]).find('img').attr('alt')
});
mainPhoto.append(img);
$('#thumbnail li:first').addClass('current');
// メイン画像を先に読み込んどく
for(var i = 0; i < thumbList.length; i++){
$('<img />').attr({
src: $(thumbList[i]).attr('href'),
alt: $(thumbList[i]).find('img').attr('alt')
});
}
// サムネイルのクリックイベント
thumbList.on('click', function(){
// img 要素を作り サムネイル画像からリンク・altの情報を取得・設定する
var photo = $('<img />').attr({
src: $(this).attr('href'),
alt: $(this).find('img').attr('alt')
});
// div#main_photo へ 上で作った img 要素を挿入する
mainPhoto.find('img').before(photo);
// div#main_photo に先に表示されていた img 要素をフェードしながら非表示にし要素を消す、
mainPhoto.find('img:not(:first)').stop(true, true).fadeOut(options.fade, function(){
$(this).remove();
});
// 新しく表示した img の親 li へ .current を付け、
// 他の li 要素についていた .current を削除する
$(this).parent().addClass('current').siblings().removeClass('current');
// 画像の親要素を現在表示中の画像の高さへ変更する
mainPhoto.height(photo.outerHeight());
return false;
});
// ウィンドウが読み込まれた時とリサイズされた時に
// div#main_photo の高さを img の高さへ変更する
$(window).on('resize load', function(){
mainPhoto.height(mainPhoto.find('img').outerHeight());
});
});
</script>
ご返答ありがとうございます。
jqueryのコード自体は
http://memocarilog.info/jquery/7477
こちらのサイトを参考にしております。
切り替え自体は出来るのですが、リスト(サムネイル)をmain_photoに重ねて画像の上にボタンがあるようにしたいのですが、marginなどで位置を調整するとどうしてもリストよりmain_photoのほうが上に来てしまい、ボタンが隠れてしまい悩んでおります
No.2ベストアンサー
- 回答日時:
jqueryを使って、各自がjavaで作成している訳で
http://memocarilog.info/jquery/7477の作成者に質問した方が早いです。
>>main_photoに重ねて画像の上に
メニューの様に使いたいなら、メイン画像の上に横に並べれば良いとおもいますが・・・。
例えば、http://black-flag.net/jquery/20111122-3597.html。
html内の例ではulを先に記述する必要がありますが・・。
ご返答ありがとうございます。
教えていただいたページのサンプル3がまさに求めていた形でした。
こちらを参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLタグのDL DT DDを使ってli...
-
画像の横に文字をうまく配置で...
-
画像と背景色の幅が合わない
-
フレームを使わずに右側だけを...
-
画像を縦に並べたら隙間ができ...
-
ホームページで縦と横の写真を...
-
複数の画像を連動してロールオ...
-
imgとpを縦・横に中央揃えする
-
cssで画像を均等に配置する方法...
-
フォームのボタンをsubmitから...
-
クリッカブルマップで画像と画...
-
マウスをのせた時に画像の色を...
-
html オンマウスで変化する画...
-
position relativeの位置について
-
複数の画像を横にスクロールさ...
-
リンクを知らせる手のマークが...
-
画像をクリックしてラジオボタ...
-
CSS実装されない
-
ブラウザ別の余白誤差って解消...
-
画像と同じCSSデザインにしたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンをセル内一杯に表示させ...
-
リンクを知らせる手のマークが...
-
htmlで画像を2個ずつ並べていき...
-
ポップアップウィンドウのサイ...
-
画像のサイズが変わらない
-
【HTML/CSS】ボタンの枠が伸び...
-
画像の場合のみ、下線を消す方...
-
cssで、チェックボックスの画像...
-
HTMLのIMAGEに。。
-
XML画像データををHTMLで簡単に...
-
画像の横に文字をうまく配置で...
-
table で画像をピッタリとくっ...
-
画像をリンクさせると紫の枠が...
-
レスポンシブ対応のHTML・CSS(...
-
3つの画像を中央に寄せて表示さ...
-
UDP通信を使うチャットプログラ...
-
水面の波紋
-
cssヘッダー画像の下に配置した...
-
画像とテーブルの隙間をなくす。
-
HTMLは、シングルクォートかダ...
おすすめ情報
http://memocarilog.info/jquery/7477
こちらのサイトを参考にしております。