![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
Jacascript初心者です。
最近たまに、webページ全体が暗くなり、ウインドウがでて来るサイトが有りますよね。
あれを実現するのにjQuery等のライブラリを使えば早い事は解っているのですが、自分で一度実装して見たいと思い下記のようなスクリプトを書いてみたらそれっぽくはなったのですが、一つ問題が発生しました。
画面サイズを拡大しても当然ながら、上に被せた透明要素が連動せず、あまりよろしく有りません。。
これを解決すべく、色々考えたのですが、透明要素のサイズをfor文などを駆使して連続的に変える力技しか思い浮かびませんでした。
そこで、皆さんの力を借りたく投稿します。
//safariでのみ動作確認
function fadeWindow() {
var shadeEl = document.createElement("div");
var width = window.innerWidth;
var height = window.innerHeight;
shadeEl.id = "shade";
shadeEl.style.width = width + "px";
shadeEl.style.height = height + "px";
document.body.appendChild(shadeEl);
}
定義済みのCSS
#shade{
background-color:#000000;
position:absolute;
top:0px;
left:0px;
filter: alpha(opacity=50);
-moz-opacity: 0.5;
opacity: 0.5;
}
どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
>に被せた透明要素が連動せず、あまりよろしく有りません。
resizeのイベントを取得してサイズを調整してもいいけれど、わざわざそんなことしなくても、CSSでwidth:100%; height:100% みたいな指定をしておけば、自動的に対応してくれませんか?
(スクリプトからはサイズ指定しない)
関係ないけど、ご提示のスクリプトだと、IE6の場合にサイズが取得できないみたいで、エラーになっちゃいました。
回答有り難うございます。
まったくその通りです。
CSSはそれなりに出来るつもりでしたが、javascriptに気を取られすぎました。
と、言い訳いておきます。
>IE6の場合にサイズが取得できないみたいで、エラーになっちゃいました。
innerWidth(height)プロパティはIEでは呼び出せないようですね。
No.3
- 回答日時:
こんにちは!//ぐろーばるへんすうは、たしかにらくちんです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Test</title>
<body>
<div id="a">かすかに見える</div>
<script type="text/Javascript"><!--
//@cc_on
var wrap = document.createElement( 'div' );
var s = wrap.style;
var c = document /*@if(1) [document.compatMode == 'CSS1Compat' ?
'documentElement' : 'body'] /*@else@*/ .defaultView /*@end@*/;
var o = 0;
var n = 0;
s.position = 'absolute';
s.top = '0px';
s.left = '0px';
s.width = /*@if(1) c.clientWidth @else@*/ c.innerWidth /*@end@*/ + 'px';
s.height = /*@if(1) c.clientHeight @else@*/ c.innerHeight /*@end@*/ + 'px';
s.backgroundColor = '#000';
document.body.appendChild( wrap );
var opacity = function ( op ) {
s./*@if(1) filter = 'alpha(opacity='+ op + ')'; @else@*/ opacity = (op / 100);/*@end@*/
};
setInterval( function( ) {
opacity( Math.abs( Math.cos( Math.PI * (n += 1) / 180 ) * 100 |0 ) );
}, 30);
//-->
</script>
No.1
- 回答日時:
>上に被せた透明要素が連動せず、あまりよろしく有りません。
window.resizeのイベントを取得して対応してもいいけれど、そんなことしなくても、CSSの指定でwidth:100%; height:100%みたいにしておけば、自動的に修正してくれると思いますが…
(width、heightはスクリプトからは指定しない)
ご提示のスクリプトだと、IE6の場合width、heightが取得できないみたいで、エラーになっちゃいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Click回数を数え、規定された回...
-
「nullまたはオブジェクトでは...
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
イベントリスナーに設定した関...
-
モーダルダイアログウィンドウ...
-
配列の大括弧と丸括弧はどう違う?
-
JavaScriptでの動的な多次元配...
-
google apps scriptの終了のさせ方
-
ASP.NETのコントロールの値をJa...
-
【正規表現】【javascript】CR...
-
二次元配列を使って順位をだす...
-
C#OpenCv V4にのエラーに関する...
-
FireFoxのjavascriptで自動でキ...
-
Imageコントロール vba
-
重複のない乱数の表示をするには?
-
Linux バイナリ実行できない "...
-
GASでundefinedエラーが出ます
-
Null またはオブジェクトではあ...
-
jsによって検索プルダウン、都...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
任意の座標をクリックさせるには
-
javascript 特定のタグのidの存...
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
モーダルダイアログウィンドウ...
-
日本語入力の禁止
-
javascriptでCSVを呼出しvlookup
-
Click回数を数え、規定された回...
-
画像上のクリックした場所が分...
-
【Tabキー】特定の範囲内だけで...
-
配列の大括弧と丸括弧はどう違う?
-
重複しないくじの作り方がわか...
-
javascriptで、表示されている...
-
div要素内の全input要素をdisable
-
javascriptであるボタンを押す...
-
javascriptで自動計算フォーム...
-
RadioButtonListの表示制御
おすすめ情報