Javascript関連情報

更新日:2003年09月27日

クロスブラウザを制する Part 2 2-39 レイヤー生成

ページ構築後に、leftとtop、widthとheightを指定してabsoluteなレイヤーを生成


| ★下記コードのサンプルです

*

レイヤーoj = createLAYER( left , top , width , height , html )
Win n4 n6 n7 moz e4 e5 e6 o7,
Mac n4 n6 n7 moz e4.5 e5 s1,
Linux n4 n6 n7 moz k1
ページ構築後に、leftとtop、widthとheightを指定してabsoluteなレイヤーを生成します。レイヤー名も自動生成され、オブジェクト名.id で取得できます。
引数の説明:
left 左端からのピクセル数
top 上端からのピクセル数
width レイヤーの幅ピクセル数
height レイヤーの高さピクセル数
html レイヤー内へ出力するHTML

* 引数htmlはクオートかダブルクオートで括ること
戻り値の説明:
レイヤーoj 生成されたレイヤーオブジェクト

* レイヤーoj.idで自動生成されたレイヤー名を取得できます
(レイヤー名は、_js_layer_という文字列の後ろに生成順に0からの連番がつづきます)
* 未対応ブラウザならnullを返します
使用例:
oj = createLAYER(100,100,100,200 ,'<font size=5>生成されたレイヤー</font>')
moveLAYER(oj.id,300,400)
下記サンプルは ボタンをクリックすると引数で指定された位置へ指定したサイズでレイヤーを生成しHTMLを表示します。 更に、もうひとつのボタンで生成したレイヤーをmoveLAYER関数を使って移動させます。 このように生成したレイヤーは、これまでに紹介した各クロスブラウザ関数で制御できます。 createLAYERはonload後に実行してください。

<html>
<head>
<title></title>

<script type='text/javascript'>
<!--

/*==============================================================*/
/*////////////////// 以下はクロスブラウザ汎用処理 //////////////*/

 /*////////////////// createLAYER-UseFree- //////////////*/

/*==================================================================
createLAYER()

absoluteなレイヤーを生成します。
生成したレイヤーは、各クロスブラウザ関数で制御できます。
-----------------------------------------------------------------
Syntax :
レイヤーoj = createLAYER(left,top,width,height, html )
-----------------------------------------------------------------
引数 :
レイヤーoj 生成されたレイヤーオブジェクト
left ドキュメント左端からのピクセル数
top ドキュメント上端からのピクセル数
width レイヤーの幅ピクセル数
height レイヤーの高さピクセル数
html レイヤー内のHTML
-----------------------------------------------------------------
戻り値 : レイヤーオブジェクト または未対応ブラウザならnull
-----------------------------------------------------------------
備考 :
* onload後に実行してください。
* レイヤーoj.idで自動生成されたレイヤー名を取得できます。
UseFree /Toshirou Takahashi/Update & Support : http://game.gr.jp/js/
==================================================================*/

//e4,e5,e6,n4,n6,n7,m1,o7,s1用
function createLAYER(left,top,width,height,html){
//onload後に実行してください


//n4以外用レイヤー名を自動生成
if(!window.createLAYER.no)createLAYER.no = 0
var layName= '_js_layer_' + createLAYER.no
createLAYER.no++

//各ブラウザ毎の処理
var ua = navigator.userAgent
var o6 = ua.indexOf("Opera 6")!=-1 || ua.indexOf("Opera/6")!=-1
if( o6 ) return null //Opera6は無視
else if(document.getElementById){ //e5,e6,n6,n7,m1用

var layoj = document.createElement('div') //div生成
layoj.setAttribute('id',layName) //レイヤー名
layoj.innerHTML = html //HTML置換え
layoj.style.position = 'absolute' //positionセット
layoj.style.left = left + 'px' //left位置
layoj.style.top = top + 'px' //top位置
layoj.style.width = width + 'px' //幅
layoj.style.height = height + 'px' //高さ

//divをbodyへ追加
document.body.appendChild(layoj)

return layoj //生成したojを返す

} else if(document.all){ //e4用

var divstr = '<div id='+layName
+ ' style="position: absolute ;'
+ ' left : '+left+'px ;'
+ ' top : '+top+'px ;'
+ ' width : '+width+'px ;'
+ ' height : '+height+'px ;">'
+ html+'<?/div>' //HTML作成

//HTMLをbodyの最後尾へ挿入
document.body.insertAdjacentHTML('BeforeEnd',divstr)

return document.all(layName) //生成したojを返す

} else if(document.layers){ //n4用

var layoj = new Layer(width) //レイヤー生成
layName = layoj.name //レイヤー名
layoj.left = left //left位置
layoj.top = top //top位置
layoj.height = height //高さ
layoj.visibility = 'visible' //可視へ

//HTMLをレイヤーへ書き出す
document.layers[layName].document.open()
document.layers[layName].document.write(html)
document.layers[layName].document.close()

return layoj //生成したojを返す
}
return null //未対応ブラウザならnullを返す
}
/*////////////////// moveLAYER-UseFree- //////////////*/ function moveLAYER(layName,x,y){ if(document.getElementById){ //e5,e6,n6,n7,m1,o6,o7,s1用 document.getElementById(layName).style.left = x document.getElementById(layName).style.top = y } else if(document.all){ //e4用 document.all(layName).style.pixelLeft = x document.all(layName).style.pixelTop = y } else if(document.layers) //n4用 document.layers[layName].moveTo(x,y) } //--> </script> <form> <input type = "button" value = " クリックするとレイヤーが生成されます " onclick= "oj=createLAYER(100,100,300,100
,'<font size=5>生成されたレイヤーです</font>')
"> <br> <input type = "button" value = " 生成されたojレイヤーを移動する" onclick= "moveLAYER(oj.id,200,200)"> </form> </body> </html>


シリーズ目次 |



  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

高橋 登史朗

Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…

続きを読む

住まいには、人の個性がよく現れるもの。同じ空間をどのように使うかで、雰囲気も、快適さも大きく変わってくる。ここでは、「建築家と家を建てる」ガイド の川畑博哉氏が厳選した10軒を紹介し、建築家それぞれのこだわりのポイントを紹介しよう。建築のプロたちが考え出した、マネしたくなるアイデアが満載! さぁ、いますぐチェック!

人気Javascriptランキング

Powered by 価格.com

デジタル関連コミュニティ

北欧好きが、愛用の北欧モノを見せ合うコミュニティ

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

ショッピングカタログ

All About ウェブマガジン

女性向け

雨が楽しくなる!レイングッズ15

男性向け

マネしたくなるアイデア住宅

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック

知識・経験を生かして、記事を書いてみませんか?