技 巧 鍵 盤 ─ KeyNavi:キーボードを活用してホームページを快適に─    
キー割当表示[Shift-H]        
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] 前景色(文字色)変更 ・サイトマップ [Shift-S]

■ 前景色(文字色)変更:kl_layer_setfgcolor(id,...)

div要素(レイヤー)の前景色を指定します。

【レイヤーの前景色指定「kl_layer_setfgcolor(id,color)」<keynavi_tools.js】

-----------------------------------------------------------------------------
■ kl_layer_setfgcolor(id,color,ns4string)
・ 返り値:成功時は1失敗時は0
・ id:対象となるレイヤー(オブジェクト)かそのID
・ color:変更したい前景色
・ ns4string:NS4にも対応したい場合はレイヤーの中身を指定
-----------------------------------------------------------------------------
function kl_layer_setfgcolor(id,color,ns4string){
        if(KL_NS4 && kl_isstr(ns4string))
                return kl_layer_write(id,ns4string,1,color);
        return kl_layer_setattr(id,"fc",color);
}

KL_LAYER_ATTRS["fc"]=new Array("str","fgColor","color","color");
.............................

//以下、属性変更用汎用スクリプト
function kl_layer_setattr(id,name,val){
        var e=kl_getelem(id); if(!e) return 0;
        var attrs=KL_LAYER_ATTRS[name];
        var t;
        if(KL_NS4){
                if(name=="w" || name=="h") e.clip[attrs[1]]=val;
                else if(name=="fc") e.document.fgColor=val;
                else if(name=="bi") e.background.src=val;
                else e[attrs[1]]=val;
        }else{
                if(!e.style) return 0;
                e.style[attrs[document.all ? 2 : 3]]=val;
        }
        return 1;
}

【kl_layer_setfgcolor()を使ったサンプル】

.....
<a href="javascript:void(0)" onclick="alert(kl_layer_setfgcolor('lay1','red'));">赤に変更</a>
.....
<div style="position:absolute; left:100px; color:brown;" id="lay1">
レイヤー「lay1」です。
</div>


この文字列の色が変わります。


Netscape4.xでは 一度表示された文字列の色を変更できません。 通常の属性変更では動作せず中身を再出力して変更を実現します。

具体的には 「document.layers[...].open()」後に前景色を指定 「document.layers[...].document.fgColor=...」してから レイヤーの中身を再出力「document.layers[...].document.write(s)」します。

そのため 前景色変更の関数には Netscape4用に引き数「ns4string」があり これが指定された場合にのみ前景色変更が実行されます。

なお NS4のレイヤー内容出力関数「document.write()」は不安定なので NS4に対応する場合は実際にブラウザで動作を確認してください。

レイヤーに対する各種スタイル指定は「document.write()」時に外れることが 多いので 前後2つのレイヤーを組合わせる半透明レイヤー:kl_tlayer_new() の利用をお勧めします。 背景レイヤー側でスタイル指定をすれば 前景の中身を書き替えても 影響が出ません。




【JavaScript@Keynavi.Net : レイヤー編:基本 】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。

  - レイヤーの表示・非表示切替え:kl_layer_show/hide(id)
  - レイヤーを移動:kl_layer_moveto,by(id,x,y)
  - レイヤーを上下左右/中央寄せ:kl_layer_setpos(is,pos)
  - レイヤーの背景色を指定:kl_layer_setbgcolor(id,...)
  - レイヤーの背景画像を指定:kl_layer_setbgimage(id,...)
  - 前景色(文字色)変更:kl_layer_setfgcolor(id,...)
  - レイヤーの各種属性(位置,大きさ,...)を取得:kl_layer_xxx()
  - ウィンドウリサイズ時のNS4レイヤーバグ回避
  - レイヤーメニューとJavaScriptモジュール化

トップへ戻る [1]
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] 前景色(文字色)変更 ・サイトマップ [Shift-S]
キー割当表示[Shift-H] ─ KeyNavi Project 2003 ─