
タブ画像を切り替えるようなことをJavaで行うにはどうすればよいでしょうか?
下記のようなAのタブとBのタブが2つあるとして、最初のページアクセスではAのタブがオンになっています。
画像はAとBそれぞれにオン・オフがあり、4つの画像を使用します。
__[ A-オン]_[B-オフ]__ ←デフォルト
ここでB-オフの画像をクリックすると、
__[ A-オフ]_[B-オン]__ ←こうなる
という風にオンクリックで切り替えることができるようにしたいと考えています。
もちろん、逆にBからAに切り替えることもできるようにしたいです。
(オンになっている方のタブをクリックしてもそのまま画像は変わらない)
そして、切り替えた状態をクッキーに保存し、再度アクセスした時も切り替わったままになっていると嬉しいです。
このタブ(まったく同じもの)を複数のページの同じ箇所に設置したいのですが、
ページ1で切り替えた後、ページ2にアクセスしたとして、ページ2でも切り替わった状態で表示されると完璧です。
このようなことが可能でしょうか?どなたかご教授いただけると幸いです。よろしくお願いします。

No.1ベストアンサー
- 回答日時:
<html>
<head><style>.box {border:1px #000 solid;padding:4px;}</style></head>
<body>
<p><a href="#" id="a" class="box"></a><a href="#" id="b" class="box"></a></p>
<div><img width="200" height="200" id="c"></div>
<script>
var n=loadCookie('imgNo');
setImage();
document.body.onclick=function(e){
var o=e?e.target:event.srcElement;
if(o.id=='a') {n^=2;setImage();}
if(o.id=='b') {n^=1;setImage();}
}
function saveCookie( vn, v, dy ){ if(navigator.cookieEnabled) document.cookie=vn+'='+escape(v)+ ';expires='+new Date((new Date()).getTime()+dy*86400000).toGMTString();}
function loadCookie(vn){ var r = '',o = document.cookie.split('; '); for (var i in o){ var c = o[i].split('='); if (c[0]==vn && c[1]!=''){ r = c[1]?unescape(c[1]):'';break; }} return r;}
function setImage(){
saveCookie('imgNo',n,10);
document.getElementById('a').innerHTML=['A-Off','A-On'][(n&2)>>1];
document.getElementById('b').innerHTML=['B-Off','B-On'][n&1];
document.getElementById('c').src = n+'.jpg';
document.getElementById('c').alt = n+'.jpg';//なくてもよい
}
</script>
この回答への補足
とても具体的で詳細なご回答くださり本当にありがとうございますm(_ _)m
実行してみたところ、動作は全く問題なかったのですが、私が意図する内容と異なっておりました。
せっかくこのようなご回答を頂いておいて申し訳ないです。
私の説明が下手クソなために本当にごめんなさい。
今一度、実現したい内容をご説明させていただきたいと思います。
4つの画像というのはタブ画像のことで、タブをクリックした時に下部に表示される画像を切り替えたいのではなく、
タブ画像そのものを切り替えたいと考えています。
組み合わせは4パターンではなく、2パターンになると思います。
さらに詳しく申し上げますと、タブクリックでCSS(文字サイズ)を切り替えたいのです。
__________________________________
| small | default |
ホームページタイトル
●PAGE1 ●PAGE2 ●PAGE3 ●PAGE4
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
このようなページを作り、small or default をクリックしてテキストの文字サイズを任意に変更できるようにしたいのです。
タブ部分には、small1.gif,small2.gif,default1.gif,default2.gifの4つのボタン画像を使います。
選択されている方のボタン画像の背景色を変えて、どちらが選択されているのか一目で分かるようにしたいので、
選択されている状態のタブ画像(1の方)と選択されていない状態のタブ画像(2の方)が2つずつあることになります。
最初はdefaultなので、
<img src="small2.gif" alt="文字サイズ:小"><img src="default1.gif" alt="文字サイズ:中">
のような状態になっており、smallをクリックすると、
<img src="small1.gif" alt="文字サイズ:小"><img src="default2.gif" alt="文字サイズ:中">
のような状態に切り替わるスイッチのような見た目にしたいと思っているのです。
CSSの切り替えには専用のjavascriptライブラリ(?)を使い実現することができました。
<a href="#" onclick="setActiveStyleSheet('small'); return false;"><img src="small2.gif" alt="文字サイズ:小"></a>
<a href="#" onclick="setActiveStyleSheet('default'); return false;"><img src="default1.gif" alt="文字サイズ:中"></a>
このようにするとタブ画像クリックで文字サイズは変わるのですが、当然画像はそのままなので困ります。
組み合わせは、small1.gif - default2.gif と small2.gif - default1.gif しかないことになります。
選択されていない方をクリックすると左右の画像を1と2に入れ替えるというか切り替わるというか・・・説明が難しいのですけれど。
こちらでご回答くださったものをいじるとできそうな気がしたのでやってみたのですが、
small1.gif - default1.gif のように1と1、2と2の組み合わせにもなってしまったりしてうまくいきませんでした・・・。
記述を若干変えるなどして実現できないものでしょうか?無理難題申し訳ありません。クッキー保存はバッチリでしたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- その他(ソフトウェア) 時間差でのオートクリック 1 2023/04/12 12:04
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- Android(アンドロイド) Android端末(arrows we FCG01)のタブの切り替え方について 2 2023/01/02 10:59
- 格安スマホ・SIMフリースマホ 楽天モバイル 楽天アンリミット?(au・povo、iPhone 12 pro) で、【au】と【楽天 1 2022/04/03 17:54
- iOS iPhoneの画面が見切れて困ってます ゲーム画面などで文字が見切れてしまっていたり タップする部分 2 2022/07/05 22:45
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- docomo(ドコモ) アンドロイド、ワイファイが勝手に切られる 2 2023/07/09 20:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptの質問です
-
クリックでURLに飛ばすときに、...
-
指定した数値同士を合計計算し...
-
別フレームのタグ属性を取得す...
-
お気に入り用のボタンを配置し...
-
div要素内の全input要素をdisable
-
[javascript]DOCTYPE宣言対応に...
-
Crossfader v1.3 を停止するには?
-
ホームページ内でのRSS表示の方法
-
フォーカスを合わせる
-
<a>タグのテキストを取得
-
JavaScriptのノードについて教...
-
javascript/他ページ内リンク...
-
DIV内のDIV要素を移動する。
-
メニュー3つとも個々にドロップ...
-
onclickの中のvar i
-
EventListener による関数呼び出し
-
船のゲームを作っているのです...
-
javascriptのレキシカルスコー...
-
delphi6を使っています。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
onchangeイベントを使ってspan...
-
javascriptで編集可能不可能の...
-
javascript 特定のタグのidの存...
-
javascriptでスロットゲームを...
-
任意の座標をクリックさせるには
-
クリックを押した時にリンク先...
-
モーダルダイアログウィンドウ...
-
javascriptでCSVを呼出しvlookup
-
onclickを使わずにイベント処理...
-
【Tabキー】特定の範囲内だけで...
-
RadioButtonListの表示制御
-
オンマウスで音を鳴らせる為には?
-
Javascriptでページ内の任意ク...
-
オブジェクトがありません
-
javascriptであるボタンを押す...
-
オブジェクトがぶつかった時の処理
-
JavaScriptのID要素の中身をque...
おすすめ情報