OverlayTemplate

    @@ -39,53 +39,67 @@ // プラグイン動作の記述 - var htmlShadow = "<div id=\"" + settings.shadowName + "\" class=\"" + settings.contentClassName + "\"></div>"; - var htmlContent = "<div id=\"" + settings.contentName + "\" class=\"" + settings.contentClassName + "\"></div>"; - var htmlOverlay = htmlShadow + htmlContent; + // オーバーレイ生成処理 if( !$("." + settings.contentClassName ).length){ - - // DOM要素の追加 - $("body").append(htmlOverlay); - - // シャドウのCSS設定 - $("#" + settings.shadowName ).css({ - background: settings.shadowColor, - opacity: settings.shadowOpacity, - position: "fixed", - top: 0, - left: 0, - width: "100%", - height: "100%", - }); - - // オーバーレイ本体のCSS設定 - $("#" + settings.contentName ).css({ - background: settings.contentColor, - borderRadius: settings.contentRadius, - position: "fixed", - top: settings.contentTop, - left: settings.contentLeft, - width: settings.contentWidth, - height: settings.contentHeight, - }); - - + createOverlay(settings); } // オーバーレイ削除処理 $(document).on("keydown", "body", function( e ){ if( e.keyCode == 27 ) { - $( "." + settings.contentClassName ).remove(); - return false; + removeOverlay( settings.contentClassName ); } }); $(document).on("click", "#" + settings.shadowName , function() { - $( "." + settings.contentClassName ).remove(); - return false; + removeOverlay( settings.contentClassName ); }); + + + // オーバーレイ生成関数 + function createOverlay ( param ){ + var htmlShadow = "<div id=\"" + param.shadowName + "\" class=\"" + param.contentClassName + "\"></div>"; + var htmlContent = "<div id=\"" + param.contentName + "\" class=\"" + param.contentClassName + "\"></div>"; + var htmlOverlay = htmlShadow + htmlContent; + + var idShadow = "#" + param.shadowName; + var idContent = "#" + param.contentName; + + var cssSettings = { + shadow: { + background: param.shadowColor, + opacity: param.shadowOpacity, + position: "fixed", + top: 0, + left: 0, + width: "100%", + height: "100%", + }, + content : { + background: param.contentColor, + borderRadius: param.contentRadius, + position: "fixed", + top: param.contentTop, + left: param.contentLeft, + width: param.contentWidth, + height: param.contentHeight, + } + }; + + + $("body").append(htmlOverlay); + $(idShadow).css(cssSettings.shadow); + $(idContent).css(cssSettings.content); + }; + + // オーバーレイ削除関数 + function removeOverlay( overlayClass ) { + $("." + overlayClass).remove(); + return false; + }; + }; }( jQuery ) );
  • /*
     * @title OverlayTemplate
     * @description オーバーレイ表示の基本テンプレート
     * @include http://*
     * @license MIT License
     * @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
     */
    
    // ToDo
    // [ ] 削除処理をフェードアウトに
    // [ ] オーバーレイサイズを自動調整(パラメータで指定した値よりウィンドウが小さい場合はウィンドウサイズを基準に調整する)
    // [ ] オーバーレイを天地中央に表示する
    
     // プラグイン部分
    (function ( $ ){
      $.fn.letOverlay = function ( options ) {
        // オプション設定
        var settings = $.extend({}, {
          // デフォルトパラメータ指定
          shadowName: "let-overlay-shadow",
          shadowZIndex: 99998,
          shadowOpacity: 0.6,
          shadowColor: "#999",
    
          contentName: "let-overlay-content",
          contentZIndex: 99999,
          contentColor: "#fff",
          contentRadius: "10px",
          contentTop: "10px",
          contentLeft: "10px",
          contentWidth: "400px",
          contentHeight: "300px",
    
    
    
    
          contentClassName: "let-overlay"
        }, options);
    
    
        // プラグイン動作の記述
    
    
        // オーバーレイ生成処理
        if( !$("." + settings.contentClassName ).length){
          createOverlay(settings);
        }
    
        // オーバーレイ削除処理
        $(document).on("keydown", "body", function( e ){
          if( e.keyCode == 27 ) {
            removeOverlay( settings.contentClassName );
          }
        });
        $(document).on("click", "#" + settings.shadowName , function() {
          removeOverlay( settings.contentClassName );
        });
    
    
    
        // オーバーレイ生成関数
        function createOverlay ( param ){
          var htmlShadow = "<div id=\"" + param.shadowName + "\" class=\"" + param.contentClassName + "\"></div>";
          var htmlContent = "<div id=\"" + param.contentName + "\" class=\"" + param.contentClassName + "\"></div>";
          var htmlOverlay = htmlShadow + htmlContent;
    
          var idShadow = "#" + param.shadowName;
          var idContent = "#" + param.contentName;
    
          var cssSettings = {
            shadow: {
              background: param.shadowColor,
              opacity: param.shadowOpacity,
              position: "fixed",
              top: 0,
              left: 0,
              width: "100%",
              height: "100%",
            }, 
            content : {
              background: param.contentColor,
              borderRadius: param.contentRadius,
              position: "fixed",
              top: param.contentTop,
              left: param.contentLeft,
              width: param.contentWidth,
              height: param.contentHeight,
            }
          };
    
    
          $("body").append(htmlOverlay);
          $(idShadow).css(cssSettings.shadow);
          $(idContent).css(cssSettings.content);
        };
    
        // オーバーレイ削除関数
        function removeOverlay( overlayClass ) {
          $("." + overlayClass).remove();
          return false;
        };
    
      };
    }( jQuery ) );
    
    
    // 実行
    $(function(){
      $().letOverlay();
    });
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/09/22 00:31:07 - 2014-09-22
  2. 2014/09/22 00:27:52 - 2014-09-22
  3. 2014/09/21 21:28:37 - 2014-09-21
  4. 2014/09/21 21:05:40 - 2014-09-21
  5. 2014/09/21 20:55:30 - 2014-09-21
  6. 2014/09/21 20:55:16 - 2014-09-21
  7. 2014/09/21 20:09:35 - 2014-09-21
  8. 2014/09/21 18:52:48 - 2014-09-21