
4枚の画像をフェードアウトで切り替えるものをjQueryのサイトを参考に作成しました。
そこで、その右側に4つのボタンのようなものを配置し、
1枚目の画像が表示されているときは1つめのボタンが
2枚目の画像が表示されているときには2つめのボタンが
選択されたような状態になり、
「現在表示されている画像はこのボタンのものです」というようなものを実行したいです。
途中まで、作業は進んでおり、
■javaScript
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5. …
<script type="text/javascript">
$(function(){
var setImg = '#contentsleft';
var fadeSpeed = 1500;
var switchDelay = 4000;
$(setImg).children('img').css({opacity:'0'});
$(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed);
setInterval(function(){
$(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg);
},switchDelay);
});
■HTML
<div id="contentsleft">
<img src="./imgs/aaa01.jpg" alt="ホーム">
<img src="./imgs/bbb02.jpg" alt="ホーム">
<img src="./imgs/ccc03.jpg" alt="ホーム">
<img src="./imgs/ddd04.jpg" alt="ホーム">
</div>
<button id="btn01">1</button>
<button id="btn02">2</button>
<button id="btn03">3</button>
<button id="btn04">4</button>
となっています。
javaScriptのところで、1枚目が表示されているときに1つめのボタンを選択状態にする。
というような処理を施せばよいのでしょうが、知識不足でお手上げ状態です。
ご教授いただければと思います。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
どのようなCSSになっているのか不明ですが、画像の順序を入替える方法を用いているようなので、ボタンの順序との照合をするのに面倒になりませんか?
表示状態を変えるのには、スクリプトで直接対象要素のスタイルを変更するか、または、スタイルはCSSで事前に定義しておいて要素のクラス設定を変えることで表示状態を変化させるなどの方法が考えられます。複雑なスタイル設定だたりすると、スクリプトでいちいち変更するのが煩雑ですし、その内容を変更したい時に毎回スクリプトを修正するのもいやでしょうから、後者の方法の方が良いのではないでしょうか。
個人的に要素の順序を入替えるのは好みで無いので、他の方法を使ってますが、参考までのサンプルに。
(おまけで、ボタンをクリックすると対応する要素が表示されるようにしてあります。)
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
#test1 { height:100px; }
div.images { position:relative; height:100%; }
div.images img { position:absolute; left:0; height:100%; }
div.buttons button { height:2em; width:2em; }
div.buttons button.active { background-color:#c44; color:#fff; }
#test2 { height:200px; margin-top:100px; }
#test2 button { background-color:#fff; color:#00f; }
#test2 button.active { background-color:#44c; color:#0f0; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7. …
<script type="text/javascript">
$(function(){
var changer = function(id, speed, delay){
var intervalId, active = "active";
//ボタン自動作成
var div = $("<div class='buttons'></div>");
$(id).append(div);
$(id + ' div.images img').css("opacity", 0).each(function(index){
div.append($("<button type='button'>" + (index+1) + "</button>"));
});
//指定要素表示関数
var setDisplay = function(index){
$(id + ' img').stop().animate({opacity:0}, speed)
.eq(index).stop().show().animate( {opacity:1}, speed);
$("button", div).removeClass(active).eq(index).addClass(active);
}
//自動フェードイン/アウト設定
var setAutoChange = function(){
return setInterval(function(){
var b = $("button", div);
var index = (b.index(b.filter("." + active)) + 1) % b.length;
setDisplay(index);
}, delay);
}
//クリック処理定義
$("button", div).click(function(){
clearInterval(intervalId);
setDisplay($("button", div).index(this));
intervalId = setAutoChange();
});
setDisplay(0); //初期表示
intervalId = setAutoChange();
}
changer("#test1", 1500, 4000);
changer("#test2", 2000, 3000);
});
</script>
</head>
<body>
<div id="test1">
<div class="images">
<img src="./img/aaa01.jpg" alt="ホーム">
<img src="./img/bbb02.jpg" alt="ホーム">
<img src="./img/ccc03.jpg" alt="ホーム">
<img src="./img/ddd04.jpg" alt="ホーム">
</div>
</div>
<div id="test2">
<div class="images">
<img src="./aaaimg/01.jpg" alt="">
<img src="./bbbimg/02.jpg" alt="">
<img src="./cccimg/03.jpg" alt="">
</div>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デフォルト非表示にしたい。【t...
-
クリッカブルマップをロールオ...
-
JavaScriptで変更した属性の元...
-
MAX関数を使ってからLEFT JOIN...
-
[JS] あるクラス名をページから...
-
window.openで値の渡し方を教え...
-
JSPでの画像ファイル表示
-
javascriptでpostした値が取得...
-
【JQuery】アコーディオンの入...
-
背景色を一定時間ごとにランダ...
-
[jQuery]bxSlider 一番最後と...
-
VBScript+IEのチェックボック...
-
CSS のみのタブ切り替えについて
-
jQueryのhide,showで中の要素が...
-
引数のある関数をhtml読み込み...
-
【HP作成】クリックすると下...
-
html内かscript内で画像出力。...
-
jqueryのsortableで一部ソート...
-
SafariでもBGMを流す方法という...
-
Javascriptで画像を水面のよう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
交互に入れ替わる画像を複数配置
-
Colorboxがうまく設置できません
-
jQueryでのドラッグアンドドロ...
-
jQueryで同じクラス名のものを...
-
デフォルト非表示にしたい。【t...
-
ボタンを押すたびに交互に切り...
-
jqueryで、後から追加した画像...
-
アップロードファイルの種類に...
-
jQueryで4枚の画像がフェードア...
-
JavaScriptでの画像切り替えを...
-
画像のフェードイン・フェード...
-
JQueryを使用して、画像をドラ...
-
scrollTo 関数で苦戦してます。
-
Javascript初心者|jQueryの.va...
-
背景色と連動するスライドショ...
-
embed要素のsrc属性の値を変更...
-
fancyboxのポップアップ時の画...
-
onloadの同一ページ内の干渉対策
-
パララックスについて 上下に...
-
「画像クリックで音声再生」を ...
おすすめ情報