2012-01-22 69 views
0

我使用VS2010,C#開發ASP.NET Web應用程序,最近我見過一些顯示一個小窗口(這是莫名其妙的模式)顯示在屏幕上的網站,雖然它是顯示整個屏幕以某種方式變暗(像有一個灰色的alpha層),以便用戶可以在主屏幕上不做任何事情,並且焦點只在小窗口上。在瀏覽器上顯示小模式窗口

一個例子可以在這裏找到:

http://www.geda.de/Permanentanlagen/Industrieaufzuege/Materialaufzuege

你可以在圖像上點擊查看窗口。我聽說這種技術也用在臉書上也

我該如何達到這個效果?我認爲這是JavaScript,對不對?我可以在VS中設計這個小窗口並使用工具箱嗎?我如何顯示它並禁用其他元素?如何在屏幕上呈現alpha圖層?有沒有提示或樣品?

我在尋找一個跨瀏覽器的解決方案

+0

感謝Oded,我會從現在開始考慮編寫URL的這條規則 –

回答

1

這是用javascript完成 - 一些動態HTML生成(一個div與100%的高度和寬度,這是灰色的,有一些不透明度設置)。

看看jQuery UIFancyBox插件。

FancyBox是一種在Mac風格的「燈箱」中顯示圖像,html內容和多媒體的工具,它漂浮在網頁上方。

1

你所描述的有很多名字(燈箱,模式對話框,疊加層),但是一般的概念是在一個截面上繪製一個半透明的圖層,並且顯示一個對話框,或者一個圖像,或其他任何東西,最重要的。

您可以自己創建相同的效果。下面是一個使用jQuery開始的示例代碼:

(function ($) { 
    $.fn.showDialog = function (options) { 
     var defaults = { element: "<div></div>", width: "", height: "" }; 
     options = $.extend(defaults, options); 
     var element = this; 
     var opacityLayer = $("body > div#dialog-container > div#opacity-layer"); 
     if (opacityLayer = 'undefined') { 
      opacityLayer = $("<div id='dialog-container'><div id='opacity-layer'></div></div>").appendTo("body").find(' > #opacity-layer'); 
     } 
     opacityLayer.addClass('opacity-layer'); 
     opacityLayer.animate({ 'opacity': '0.7' }, "fast", function() { 
      if (!element.addClass) { 
       element = $(element); 
      } 
      element.addClass('dialog rounded-cornered'); 
      //opacityLayer.html(element); 
      opacityLayer.after(element); 
      //opacityLayer.append("<div class='actions'><a id='close-dialog' class='action dialog-action' href='javascript:void(0);'>بازگشت</a></div>"); 
      element.append("<span id='close-dialog'></span>"); 
      element.find('#close-dialog').click(function() { 
       hideDialog(); 
      }); 
     }); 
     return this; 
    } 
})(jQuery);