切り替わるバナー



0   名前: ヒロ : 2007/06/07(木) 09:46  ID:w2IsECRs sub-bK
数秒で画像が自動的に切り替わるバナーを制作したいです。

バナー1→バナー2→バナー3→バナー1→バナー2→・・・・

調べてはいるのですが、なかなか見つからないのでどなたか教えてください。
宜しくお願いします。

1   名前: 通りすがり : 2007/06/07(木) 09:46  ID:0u4CpyS6 sub-Cl
ヒントが少ないので答えが難しいですが、

アニメーションGIFじゃだめなの?

2   名前: 匿名 : 2007/06/07(木) 09:46  ID:w2IsECRs sub-bK
ご返信ありがとうございます。
補足ですが、
数秒ごとに画像が変わり、クリックした時のリンク先も変わるようにしたいのです。

3   名前: カヅサツ ◆ThCi95HEzw : 2007/06/07(木) 09:46  [URL]  ID:O5hEMlpW sub-r2
JavaScriptを使うことになりましょうが、無視する設定にしていたり、対応していなかったりする環境ではどうしたいかによります(そういう環境では画像を出さないのか、画像を出すが切り替わらないのか)。

4   名前: ヒロ : 2007/06/07(木) 09:46  ID:w2IsECRs sub-bK
おはようございます。
HTMLタグは少しわかるのですが、独学でやっているのでまだまだわからない事が沢山あります。
初心者のような質問をしてしまいまして申し訳ありません。

無視する設定では「画像を出すが、切り替わらない」という設定を希望します。

5   名前: 匿名 : 2007/06/07(木) 09:46  ID:gFY2524F sub-Q5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>無題ドキュメント</title>
<script type="text/javascript">
function setAnimation(){
var imgSrcAry = new Array("img/banner1.gif","img/banner2.gif","img/banner3.gif");
var linkUrl = new Array("http://www.google.co.jp/","http://www.yahoo.co.jp/","http://www.goo.ne.jp/");
var counter = 0;
animation(imgSrcAry,linkUrl,counter);
}
function animation(SRC,HREF,NUM){
document.images["banner"].src = SRC[NUM];
document.getElementById("link").setAttribute("href",HREF[NUM]);
if(NUM < 2){NUM++;}
else{NUM = 0;}
setTimeout(function(){animation(SRC,HREF,NUM);},2000);
}
</script>
</head>

<body onload="setAnimation();">
<div id="banner_area">
<a href="http://www.google.co.jp/" id="link"><img src="img/banner1.gif" name="banner" /></a>
</div>
</body>
</html>

こんにちは
いまいちキレイじゃないけど
一応、動きます。

最初の2つの配列が画像とリンク先のパス
if文の中の2を画像数により変更する
アニメーションの速度は2000を変更し調整

6   名前: ヒロ : 2007/06/07(木) 09:46  ID:w2IsECRs sub-bK
お忙しい中すみませんでした。
早速試してみます。

7   名前: 匿名 : 2007/06/07(木) 09:46  ID:Ketd2UdV sub-Cz
完全に余談。

>>5
XHTML で script 要素内容を CDATA セクションにしない場合、スクリプト内の "<" と "&" を実体参照で置き換えねばならない。だが、そうすると既存の HTML パーサは実体参照を展開しないままスクリプトエンジンに渡すので、エラーになる。

XHTML で script 要素内容を CDATA セクションにすると、既存の HTML パーサは '<![CDATA[' をそのままスクリプトエンジンに渡すので、エラーになる。

XHTML で script 要素内容をコメントアウトすると、本当にコメントアウトされる。

だから、HTML ソースごと書くなら、XHTML ではなく HTML の方が面倒が少ないと思うよ。XHTML は、何よりも整形式であることが優先されねばならない。

# また、XHTML を使うなら、document.images は非推奨になる。

8   名前: 匿名 : 2007/06/07(木) 09:46  ID:Ketd2UdV sub-Cz
すみません、>>7 は撤回します。いろいろ難しく考え過ぎてた。

とにかく、XHTML の script 要素内で "<" と "&" は使わないで下さい。整形式でなくなってしまう(">"、"|" は構いません)。もしくは、CDATA 区間か外部スクリプトにして下さい。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
    <title>TEST</title>
  </head>
  <body>
    <p><img src="banner0.png" alt="*" id="BANNER" name="BANNER" /></p>
    
    <script type="text/javascript">//<![CDATA[

function SrcList () {
    this.length = 0;
    Array.prototype.push.apply (this, arguments);
}

function ImagePrefetcher (args) {
    var i = 0;
    var I = args.length;
    while (i < I) (new Image).src = args[i++];
}

function SrcChanger (src) {
    this.src = src;
//  this.setAttribute ('src', src);
}

function ImageChanger () {
    this.counter = (++this.counter) % this.length;
    SrcChanger.call (this.image, this[ this.counter ]);
}

function BannerList (image) {
    this.image = image;
    this.counter = 0;
    SrcList.apply (this, arguments);
    this[0] = image.src;
//  this[0] = image.getAttribute ('src');
    ImagePrefetcher (this);
}

BannerList.prototype.change = function () {
    ImageChanger.call (this);
}

var image = document.getElementById ('banner');
// var image = document.images['banner'];

var BL = new BannerList (image, 'banner1.png', 'banner2.png', 'banner3.png');
setInterval (function () { BL.change (); }, 2000);

//  ]]></script>
  </body>
</html>

9   名前: 匿名 : 2007/06/07(木) 09:46  ID:gFY2524F sub-Q5
>>5
すいません、イメージの先読みとか忘れてましたね。。。

>>7
いろいろ、ありがとうございます!

一覧へ戻る