画像変化について



0   名前: 初心者 : 2007/03/14(水) 17:18  ID:AxfG.8F6 sub-t1
文字にマウスが重なる(ロールオーバーする)と、画像が変化する物を作りたいのですが、どうすれば作れますか?
imgにロールオーバーは出来たのですが文字だとわかりません。

よろしくお願いします。

1   名前: 元帥 : 2007/03/14(水) 17:18  [URL]  ID:xrHipOFg sub-bK
http://www.tagindex.com/javascript/link/change3.html

2   名前: のび子 : 2007/03/14(水) 17:18  ID:Vd3cKSLl sub-8t
わたしも初心者さんと同じ事を質問しようとしていましたので、
同じスレに書き込みさせて頂きます。

元帥さんに教えて頂いた方法では、
リンク先が多々ある場合に、
スクリプトをどんどん書き足さなくてはいけないですよね。
わたしは上記のスクリプトを使用したいリンク先が20以上あるので、
量がとんでもなく増えてしまいます。

元帥さんに教えて頂いた方法以外に
http://fine.tok2.com/home/gomix/tuto_8.html
のページで同じようなものを見つけたのですが、
IEでは大丈夫なのに、Firefoxではうまく作動しません。
Firefoxでも変わらずに作動するようにするにはどうすればいいのでしょうか?

3   名前: のび子 : 2007/03/14(水) 17:18  ID:Vd3cKSLl sub-8t
申し訳ありません。
自己解決いたしました。

http://www.sky.sannet.ne.jp/masapine/java_gazou3.html

4   名前: 匿名 : 2007/03/14(水) 17:18  ID:Z/T9lFdK sub-kJ
# 他人のコードを参考にしたのに「自己」解決とはこれいかに。

大抵の場合、mouseover なんてのは文書要素に 1 つ付ければ十分。例えば下記を HTML の好きな位置に組み込めば、勝手にロールオーバーするようになる。
<script type="text/javascript">/*@cc_on@*/

if (document.implementation &&
    document.implementation.hasFeature ('HTML', '1.0') &&
/*@if (@_jscript)
    @_jscript_version > 5.5 &&
  @else@*/
    document.implementation.hasFeature ('MouseEvents', '2.0') &&
/*@end@*/
    typeof Function.prototype != 'undefined'
) {

var MouseOverListener = function (event) {
    arguments.callee.prototype.handleEvent (event);
    return arguments.callee;
};

MouseOverListener.prototype = {
////////////////////////////////////////////////////////////////////////
// ページ内で、左の画像にポイントすると右の画像に切り替わる。
// ポインタを外すと元に戻る。数は自由。

    'sample1-1.png' : 'sample1-2.png',
    'sample2-1.png' : 'sample2-2.png',
    'sample3-1.png' : 'sample3-2.png',

// 設定ここまで
////////////////////////////////////////////////////////////////////////
    
    src : '',
    handleEvent : function (event) {
/*@if (@_jscript)
        var t = window.event.srcElement;
        var r = window.event.fromElement;
  @else@*/
        var t = event.target;
        var r = event.relatedTarget;
/*@end@*/
        if (r) {
            if (r.nodeName == 'IMG') {
                var src = this.parse (r.src);
                
                if (src == this[this.src]) {
                    r.src = this.src;
                }
            }
        }
        if (t.nodeName == 'IMG') {
            var src = this.parse (t.src);
            
            if (this[src]) {
                this.src = src;
                t.src = this[src];
            }
        }
    },
    parse : function (uri) {
        var tmp = uri.split (/[/\\]/g);
        return tmp[tmp.length - 1];
    }
};

document./*@if (@_jscript) attachEvent ('on' + @else@*/
         addEventListener (/*@end@*/'mouseover', MouseOverListener, false);
</script>

5   名前: 匿名 : 2007/03/14(水) 17:18  ID:Z/T9lFdK sub-kJ
あーごめん、>>4 は「文字にポイント」ではないから主旨違いだった。蛇足の補足ということでご容赦。
# 「文字へのポイント」は、実はもっと簡単。

一覧へ戻る