jQuery:我如何创建一个简单的叠加层?

aog*_*ghq 93 jquery

如何在没有UI的情况下在jQuery中创建真正基本的叠加层?

什么是轻量级插件?

Fra*_*kie 199

覆盖是,简单地说,一个div是撑固定在屏幕上(没有,如果你滚动物质)和具有某种不透明度.

这将是您的跨浏览器不透明度为0.5的CSS:

#overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
    z-index: 10000;
}
Run Code Online (Sandbox Code Playgroud)

这将是您的jQuery代码(无需UI).您只是要使用ID #overlay创建一个新元素.创建和销毁DIV应该就是您所需要的.

var overlay = jQuery('<div id="overlay"> </div>');
overlay.appendTo(document.body)
Run Code Online (Sandbox Code Playgroud)

出于性能原因,您可能希望隐藏DIV并将显示设置为阻止,而不是根据需要设置.

希望能帮助到你!

编辑:正如@Vitaly所说,请务必检查您的DocType.阅读更多关于他的发现的评论..

  • 得到它了.不得不从<!DOCTYPE html PUBLIC" - // W3C // DTD HTML 4.1 Transitional // EN">更改doctype到<!DOCTYPE html PUBLIC" - // W3C // DTD XHTML 1.0 Transitional // EN"> make IE了解"位置:固定". (9认同)
  • 如果要向该叠加层添加内容但不希望它是半透明的,请使用背景:#000000; background-color:rgba(0,0,0,.5)而不是不透明度条目.背景:rgba支持旧浏览器之前的#000000. (6认同)
  • 太好了!谢谢!我将在这个问题上分享您的发现,以便让Googler过得更轻松!;) (3认同)
  • 提示:对于跨浏览器支持,请使用1x1px半透明图像(gif或png)...然后您可以轻松将其设置为`background-image:url('semi-transparent-pixel.png');` (3认同)

Ton*_*rix 16

这是一个简单的javascript解决方案

function displayOverlay(text) {
    $("<table id='overlay'><tbody><tr><td>" + text + "</td></tr></tbody></table>").css({
        "position": "fixed",
        "top": 0,
        "left": 0,
        "width": "100%",
        "height": "100%",
        "background-color": "rgba(0,0,0,.5)",
        "z-index": 10000,
        "vertical-align": "middle",
        "text-align": "center",
        "color": "#fff",
        "font-size": "30px",
        "font-weight": "bold",
        "cursor": "wait"
    }).appendTo("body");
}

function removeOverlay() {
    $("#overlay").remove();
}
Run Code Online (Sandbox Code Playgroud)

演示:

http://jsfiddle.net/UziTech/9g0pko97/

要旨:

https://gist.github.com/UziTech/7edcaef02afa9734e8f2

  • 一个`<table>`?是20世纪90年代? (4认同)