2016/06/10 jQuery プラグインを作成しました 2016/06/07 ベージに横スクロールバーが出ている場合や、小さなコンテンツで、ブラウザが大きく開いている場合に対応すると、load と resize イベントで的確な設定をする必要がありました。 Stack Overflow でとてもいいサンプルがあったのでご紹介します、ただ、サンプルでは汎用性に欠けるので、どこでも使えるように改造しました。 対象コントロールをクリックすると、コントロール以外が暗転します 対象コントロールにクラスを設定し、そのクラスは position:relative; にしておきます。後は、overlay 用の div の作成と、jQuery のイベント登録です。
div は css で大きさを明示する必要があります
このブログの都合で div幅はインラインで指定しています
オリジナルからの改造の最も重要な点は、暗転用の div を、jQuery で BODY に追加して高さを動的に設定して使用してるところです。これは、ブログ等の複雑な HTML 構造の場合に有効だと思います。単純なページならば、オリジナルと同じように height:100% で良いかと思います
<style> .example { background:#fff; border:1px solid pink; cursor:pointer; margin:5px; padding:20px; height:100px; } .expose { position:relative; } #overlay { background:rgba(0,0,0,0.3); display:none; position:absolute; top:0; left:0; z-index:99998; } </style> <div class="expose example" style="width:300px!important;">div は css で大きさを明示する必要があります</div> <br> <textarea class="expose" style="width:300px;height:100px;">入力できます</textarea><br> <br> <input type="text" class="expose" value="入力できます" style="width:300px;"><br> <br> <div class="expose example" style="width:300px!important;">このブログの都合で div幅はインラインで指定しています</div> <br><br> <script> $(function(){ $( '<div id="overlay"></div>' ).appendTo( 'body' ); $('.expose').click(function(e){ $(this).css('z-index','99999'); $('#overlay').fadeIn(300); }); $('#overlay').click(function(e){ $('#overlay').fadeOut(300, function(){ $('.expose').css('z-index','1'); }); }); $(window).on("load resize", function(){ if ( document.documentElement.clientWidth < Math.max(document.documentElement.scrollWidth,document.body.scrollWidth) ) { $('#overlay').css("width", Math.max(document.documentElement.scrollWidth,document.body.scrollWidth) +'px'); } else { $('#overlay').css("width", "100%"); } if ( document.documentElement.clientHeight < Math.max(document.documentElement.scrollHeight,document.body.scrollHeight) ) { $('#overlay').css("height", Math.max(document.documentElement.scrollHeight,document.body.scrollHeight)+'px'); } else { $('#overlay').css("height", "100%"); } }); }); </script>
|
【jQueryの最新記事】
- jQuery の $.get を使用した ajax のテンプレート
- jquery.balloon.js を使用した簡単なバルーン( マウスオーバーで表示する追加説明用 )の作り方
- jQuery による link 要素の追加と削除を bootstrap.css でリアルタイムチェック
- FileReader で、ローカルの CSV を読み込んで(shift_jis)、jQuery でテーブルを作成して表示する
- jQuery + bootstrap.js で ajax の GET と POST を使用した DB テーブルを更新する UI テンプレート
- jQuery : 貼り付けるだけで、ページ右下にページ先頭にジャンプするリンクを表示させる( アニメーションは無し )
- STYLE 要素を追加して、CSS テキストをセットして、jQuery で CSS に important 指定を追加する。
- ページの右下に、ページの先頭へ移動するボタンを追加する(ページの先頭から 200px までは、スクロールボタンを表示しない)
- テーブルのTDをクリックしたら、INPUT で値を変更可能にして、元の値と違うものにはフラグを立てる処理を絵で書いて説明してみました
- jQuery を使用してサーバから取得した JSON データを元にテーブルを作成し、その後から列を加工する
- JSON 配列を WEB より読み出して jQuery で動的にテーブルを作成して表示する
- jQuery UI の Datepicker Widget のオプション
- FormData を使用して、jQuery で配列として PHP に送る
- 必要なデータを隠しリストボックス( multiple ) に jQuery で追加して配列として PHP に送る
- Android Studio の追加日本語化用に、キャラクタセットに依存しないコード文字列を作成するツールを作成しました
- 画像ファイルが存在した時のみ、表示する jQuery の記述
- jQuery で mobile(スマホ) かどうかのチェックをしたくて調べたら、Stack Overflow の記事でいろんな方法が答えられていました。
- jQuery と FileReader オブジェクトによる、ローカルの複数画像ファイルのプレビュー表示
- jQuery で、左右に並んだリストボックスの右側のデーターをダブルクリックしたら左へ転送してソートする処理
- jQuery でコンボボックスの選択されたオプションのテキストを取得する場合、optgroup を使っている場合は子孫選択でないと取得されないというお話 / find(子孫) と children(直..