比較的単純な表形式の表示をするHTMLを作成しています。
上段の項目タイトルなどの部分を固定しておいて、下のデータ群は上下スクロールで見るという使い方ができるように、上下のブロックに分けて表示しています。(エクセルの「ウインドウ枠の固定」のイメージです)
画面をリサイズした際に、セル内の文字数によっては高さが変わってしまう場合があるので、ブロックの高さの調整が必要になってきます。
表示の横幅を固定してしまえば調整が不要になるのはわかっていますが、HTMLということもあり、全体幅100%などの相対指定やある項目幅のみの指定など、部分的な指定のみであとはブラウザ側にまかせる表示方法をとっています。(表の種類がいろいろあるので、全部を計算で決めるのが面倒ということもありますが。)
そこで調整するために、画面リサイズの際にonresizeでJavaScriptによる調整をしようと考えましたが、onresizeではブラウザが再表示する前にイベントが発生するようです。
一方、調整するのにはブラウザの表示状態を見てブロックの高さ決めているため、このタイミングだと正しく調整ができません。(項目とデータの間にマーカーを入れておいて、その位置を計ることでブロックのサイズを割り出しています。)
代案として、onresizeではフラグを立てるだけにして、画面上にマウスが戻った時に(再表示後と見て)改めてブロックの高さを調整するという少々回りくどい方法を考えました。
一応、これでなんとかなってはいますが、リサイズ後に画面外にマウスがあるままだと調整前の表示のままになってしまうという欠点があります。
そこで質問ですが、もう少しスマートな対応のアイデアはないでしょうか?
ブラウザはIEのみの環境ですので、IE限定でかまいません。
No.1ベストアンサー
- 回答日時:
よくわかってないけど、
onresize="setTimeout(調整関数,1)"
みたいにタイマーで調整の関数を呼び出したらうまくいきませんかね?
http://www.tohoho-web.com/js/window.htm#setTimeout
時間については、一旦、Javascriptパーサーを開放するのが目的なので1ミリ秒でも問題ない・・・と思う。
この回答への補足
早速実験してみたところ、うまくいきました。
軽いデータで実験したので1ミリ秒でも全く問題ありませんでしたが、安全をみて、視覚的に問題がなさそうな10ミリ秒くらいで仮設定してみることにしました。
ありがとうございました。
面白いことにIEでは最初はタイマーが効きませんでした。(数字に関わらず1ミリ秒くらいで実行していたらしい・・)
onresize="setTimeout(調整関数,タイム);"のセミコロンを入れたらば、やっと待ち時間が正しく解釈されました。
なるほど!
ブラウザの表示時間との関係で、Timeoutの設定をどのくらいにするかが微妙そうですが、私のアイデアよりもはるかにスマートですね。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト 倍率自動調整して全画面表示できるフリーの画像ビューアー 1 2023/08/24 10:55
- 画像編集・動画編集・音楽編集 premier elements 2020でのガベージマットについて 1 2023/04/02 09:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- その他(Microsoft Office) エクセルでの作成データをモニター画面内に収めたい。 1 2022/04/23 11:52
- デスクトップパソコン 全画面表示でもタスクバーを前面に隠す、表示させるようにしたい 3 2022/03/23 12:30
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- 画像編集・動画編集・音楽編集 AfterEffectでのシャターの挙動がおかしい 1 2023/05/07 00:38
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入らないギアがあります
-
オートバックスでハロゲンからL...
-
キンツレーの置時計について吊...
-
新品のロードバイクの組み立て...
-
分光光度計で透過率を測ったら1...
-
弓道・弓を買ったらすることを...
-
マーシャル的調整過程とワルラ...
-
ロレックス ref.6694(手巻き)...
-
歯医者のドリルみたいな・・・
-
MTBを10速化(全てXT)したのです...
-
巾着の紐止め
-
carrozzeria(pioneer)DEH-P01の...
-
着物の寸法直しは自分でできる...
-
【エアガン】A&K M249 MINIMI PAR
-
ハンドパレットが上昇後下がら...
-
停止寸前にブレーキから異音が...
-
タイヤハウス内のカバーみたい...
-
自転車のブレーキ音の修理はや...
-
ネジが空回りする…対策方法を教...
-
「コニシG17ボンド」キャップが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポケモンHGSSでの曜日兄弟のリ...
-
分光光度計で透過率を測ったら1...
-
オートバックスでハロゲンからL...
-
トランクの左右の高さのチリが...
-
新品のロードバイクの組み立て...
-
歯医者さんで被せた銀歯の高さ...
-
ロードバイクのフロントディレ...
-
ハンドルがグラグラします。
-
L時デスクなんですけどマウスを...
-
ノートパソコンモニターが黄み...
-
ギターのネック、トラスロッド...
-
ロレックス ref.6694(手巻き)...
-
パイオニアレコードプレーヤー ...
-
サンヨー ポータブルナビ NV-LB...
-
子どもの個人面談日程変更につ...
-
SWRの測り方
-
忍耐力があるのは どうして精...
-
非点補正(stigmation)の方法
-
入らないギアがあります
-
Amazon 自転車購入 自分で組み...
おすすめ情報