JAVA SCRIPTとレイヤーとCSSの組合せなのですが

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: ヘロイン : 2006/03/15 15:41
画像のオンマウス、DIVを使ったレイヤー(テキストメニューの表示のため簡単なCSS組み)の
表示・非表示の設定等をオンマウス・マウスアウトを使ってジャバスクリプトで
制御しようとしているのですが、WINのIEで動作確認をすると、
チカチカと不安定な動きになってしまって、困っています。
マウスオーバーエリアの作り方、ジャバスクリプトをかける位置、他色々と試してみたのですが、
解決策が見当たらず滅入っています。。。
どなたか、なにかヒント、もしくは参考になりそうなサイトなど教えていただければと思い
書き込ませて頂きました。
へたくそな質問と説明でもうしわけありませんが
どうか宜しくお願いいたします。

1   名前: m035 : 2006/03/15 15:41  [URL
画像にonmouseoverしたときにdivのstyleを
どのように変化させたところWinIEで不安定な動作をするのか。

これが伝わらないと厳しいです。
displayなのかvisibilityなのかそれとも見えない位置にpositionを指定しているetc・・・
画像にマウスが乗ったときだけ表示すると言うことでしたら、
<img src="url" alt="代替テキスト" onmouseover="表示用関数()" onmouseout="非表示用関数()">
とすれば問題なく動作するはずですが・・・ソースがないとアドバイスのしようがないです。

2   名前: とおりすがり : 2006/03/15 15:41
お約束のツッコミですがjavaとjavascriptは別物です。
ジャバスクリプトをジャバと省略しちゃだめです

3   名前: Pid : 2006/03/15 15:41
ついでにツッコむと,私には「レイヤー」なるものが何を意味しているのかよく分からないんですよね(Dreamweaver 用語かしらん……少なくとも,(X)HTML,CSS,DOM 仕様には出てこない用語です)。

それはともかく,WinIE6 でのチラツキであれば
http://www.tagindex.com/cgi-lib/q4bbs/patio.cgi?mode=view&no=109
をまず疑ってみて下さい。

4   名前: ヘロイン : 2006/03/15 15:41
m035さん。
初めまして、コメントありがとうございます

基本的にジャバスクリプトで
layer_sellector('レイヤーの名前','visible')

layer_sellector('レイヤーの名前','hidden')

onmouseoverとonmouseoutにかけている感じです。

ちょっと忍びないですが、
もしよろしければ、m035さんのサイトを拝見させていただいたのですが
ソースを書き込むので見るだけ見てもらってよろしいでしょうか?
ずうずうしくて、すみませんがどうか宜しくお願いいたします。

5   名前: ヘロイン : 2006/03/15 15:41
とおりすがりさん
失礼しました。
気をつけます。。

6   名前: ヘロイン : 2006/03/15 15:41
Pidさん

初めまして
う〜ん、僕も何の用語かは詳しく知らないですが
割と昔から、DIVタグで不可視エリアを作って表示・非表示させるのを
レイヤーと聞いてたし、教わってきました。
Dreamweaverの機能なんかにも付いてますね。

DIVタグにIDとNAMEをつけてvisibleとhiddenで制御してます。

参考URLありがとうございました。

7   名前: 神崎 : 2006/03/15 15:41
JAVAとJavaScriptの違いはともかくとして、

> レイヤー
英語でしょう。
http://www.excite.co.jp/dictionary/english_japanese/?search=layer&match=beginswith&dictionary=NEW_EJJE&block=39568&offset=1106

コンピューター用語としては、
フォトショップなどの画像処理ソフトの機能として、またはネットワーク関連の言葉としても使われることが多いですし、
Macromedia Flashやページデザインでは一般的な言葉として使われます。
HTMLコーダーからみると、まれに見る言葉かも知れませんが、文脈から判断出来ると思います。

<layer>および<ilayer>というタグもありますが、
Netscape専用のタグですので、厳密なHTMLの言語仕様としては採用されていません。
これと同じ機能をCSSのposition:absoluteでサポートされています。
ヘロインさんの仰るとおり、
DIVタグに一部のCSSを割り当てた物を便宜上、レイヤー(DIVを使ったレイヤー)と呼ぶことも多いです。


で、本題ですが、

> layer_sellector('レイヤーの名前','visible')
> と
> layer_sellector('レイヤーの名前','hidden')
この関数の内部はどの様になっていますか?
それがわからないことには、原因も解決策も出せません。

8   名前: Pid : 2006/03/15 15:41
>>6
> DIVタグにIDとNAMEをつけて

div 要素に name 属性というのは存在しません(かつては独自拡張としてあったようですが…以下参照)。

>>3 に関して書き忘れていましたが,もしこれが原因ならば,「インターネットオプション」→「インターネット一時ファイル」→「設定」で,「ページを表示するごとに確認する」以外にするころで,ちらつきを抑えられる場合もあります。ただし,背景に透過 GIF を使っている場合は,記事にあるようにサーバ側で対処してもらうしかありません。



脱線しますが,

>>7
念のため,私は仕様にない用語を全て駄目と言っているわけではありません。ただ,「レイヤー」の示す内容が不明瞭で,使いどころがよく分からないのです。

> DIVタグに一部のCSSを割り当てた物を便宜上、レイヤー(DIVを使ったレイヤー)と呼ぶことも多いです。

WinIE3 の時代ならともかく,現状で div 要素(←タグではない)だけ特別扱いする必要があるでしょうか。CSS では全ての要素が(さらに言えば,一部の文字ですら)ボックスとして X, Y, Z 座標の配置に関するプロパティを持ちうる以上,div 要素のみを「レイヤー」と称する根拠を,私は今のところ見つけられません[*2]。

[*1] もし「p 要素を使ったレイヤー」「first-letter 擬似要素を使ったレイヤー」「匿名インラインのレイヤー」という表現があるなら,ボックスの言い換えとして使用されているということで,私は納得します。なお,CSS2 の表階層の説明では layer という用語が出てきます。

[*2] もともと NN の layer 要素(←タグではない)に対応するのが IE の div 要素(div 要素自体は HTML 3.0 からだが,独自拡張として src 属性と name 属性があったらしい),ilayer 要素に対応するのが iframe 要素でしたから,歴史的な根拠はあるかもしれません。iframe 要素をレイヤーと呼ぶ人は今でもおられますし,その使い方は尊重します。しかし今使われている「レイヤー」は,この意味ではないのですよね。

まあ要するに,「レイヤーって何?」と入門者に聞かれたときにどう答えれば良いか,私にはまだよく分からないのです。

【修正:div 要素に関する記述を書き直しました】

9   名前: カヅサツ : 2006/03/15 15:41
> 「レイヤーって何?」と入門者に聞かれたときにどう答えれば良いか,私にはまだよく分からないのです。

「Netscape 4 というブラウザの独自拡張に、layer要素というものがありました。ただし、最近の Netscape では破棄されて対応していません。また、div要素のことをレイヤーと呼ぶ人がいますが、あくまで俗語です」

でいいんじゃね?

10   名前: Pid : 2006/03/15 15:41
>>9
そうなんすけど,俗語で片付けてはいけない何かがあるんだろうかと勘繰ってまして。特定のブロック要素をレイヤーと呼びたくなる気持ちも分からなくはないですが,それが定着するとかえって CSS デザイン・スクリプティングの幅を狭めてしまう気がします。

ごめんなさい,完全にスレ違いですた。でもこの件,別所でいろいろ話をお聞きしたいなあ…。

11   名前: m035 : 2006/03/15 15:41  [URL
>>4
ソースを提示するのは大いに賛成です。最近、抽象的な質問多いですから・・・
見た限りではvisibilityを設定して表示・非表示しているようですね。


#たしかに、レイヤーと言うのはきっちりとこれだ!と言う定義は無いかもしれませんね。
雑談ルームにスレッド立ててもよさそうな話題ですね・・・脱線すいません・・・

12   名前: ヘロイン : 2006/03/15 15:41
書き込みくださった皆さん、どうもありがとうございました。

時間が無かったもので試行錯誤、色々な方向で試しながら、
どうにか、どの環境でも安定したプルダウンメニューを作る事が出来ました。

どうもWINのIEの場合ジャバスクリプトを使った画像のオンマウスと
CSSのDIV要素を使ったレイヤー(使い慣れてしまった言葉なので使わせてもらいます)の
表示・非表示を同時にかけてしまうとチラついてしまうようでした。
お騒がせしました。

レイヤーに関しては個人的にはz indexと座標を指定して
visibility設定でvisiblとhiddenで表示を切り替えられる透明シートじょうのエリアと捉えています。
あまり専門的につっこまれると痛いのですが、
(早い話、イラストレイターやフォトショップのレイヤーと同じ感覚?)

参考迄に落ち着き次第、成功したソースを掲示しようかなぁと思います。
(多分、つっこみ所満載でしょうが。。)

また、今後書き込みさせていただく事もあると思いますが
どうぞ宜しくお願いします。
ひとまずありがとうございました!


一覧へ戻る