ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:idhokanohi フラグ管理@レンダリングエリアの幅
困り度:
  • 困っています
レンダリングエリア(描画されるエリア、ウィンドウ幅とはちょと違う)
によって、フラグを変更したいのです。よろしくお願いします。

800px以下     flag=0
800px以上1280以下 flag=1
1280px以上    flag=2

判定はページ読み込み時でも常時判定でもどちらでもいいです。
説明不足でしたらツッコミ入れてください。
質問投稿日時:08/07/01 20:50
質問番号:4143921
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:_pipi_ var dbcw=document.body.clientWidth;←グローバル変数に代入されている。これだと、いつ代入されたのか微妙?
なので関数内に入れる
function winwid() {
var dbcw=document.body.clientWidth;
flag=(dbcw<800)?0:(dbcw>1024)?2:1;
}
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:08/07/03 08:36
回答番号:No.5
この回答へのお礼できました〜!
ありがとうございます><
関数内で設定するのですね、勉強になりました。

回答

 

回答者:_pipi_ 三項演算子といいます
(条件)?値1:値2;
条件が成立したら、値1を返します。そうでなければ値2を返します
これを使えば短くなります
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:08/07/02 20:49
回答番号:No.4
この回答へのお礼なるほど、これは便利ですね〜!
だいたいあってたw
ありがとうございました♪

回答

良回答20pt

回答者:_pipi_ >説明不足でしたらツッコミ入れてください
とのことなので、800pxと1280pxのとき範囲が、かぶるかも?
(未満を使う)

var p=幅;
flag=(p<800)?0:(p>1280)?2:1;

^^;
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:08/07/02 06:47
回答番号:No.3
この回答への補足回答ありがとうございます
もしよかったら軽く解説お願いしてもいいでしょうか?
「?」の使い方とか「:」とかがよくわかりません
今はこんな感じで処理しているのですが、もっと略せるのでしょうか?

function winwid() {
if (document.body.clientWidth <= 800){flag=0;}
else if (document.body.clientWidth <= 1280) {flag=1;}
else if (1280 < document.body.clientWidth) {flag=2;}
;}
この回答へのお礼?が?の左が正しければ右 :がそうでない場合の処理みたいな感じなのかな。
それから、
function winwid() {flag=(document.body.clientWidth<800)?0:(document.body.clientWidth>1024)?2:1;}
だとできるのですが、
var dbcw=document.body.clientWidth
function winwid() {flag=(dbcw<800)?0:(dbcw>1024)?2:1;}
だと全部フラグ1になってしまいます…何か間違っているのでしょうか>_<

回答

 

回答者:masaota56 function winwid() {
if (document.body.clientWidth < 800px){flag=0}
else if (800 < document.body.clientWidth < 1280) {flag=1}
else if (1280 < document.body.clientWidth) {flag=2}
}

2行目の800px←pxが要りません
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/01 22:52
回答番号:No.2
この回答への補足うっかりしてましたw
一応動作確認取れました、回答ありがとうございます。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答10pt

回答者:masaota56 こういうことでしょうか?
http://memo.xight.org/2006-08-04-3
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/07/01 21:23
回答番号:No.1
参考URL: http://memo.xight.org/2006-08-04-3
この回答への補足はい、そういうことです。回答ありがとうございます!

function winwid() {
if (document.body.clientWidth < 800px){flag=0}
else if (800 < document.body.clientWidth < 1280) {flag=1}
else if (1280 < document.body.clientWidth) {flag=2}
}

間違ってるのですが、ノリ的にはこんな感じでいいのでしょうか?
訂正お願いします;;
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示良回答のみ表示