我需要一个磨砂玻璃UI效果,这基本上是一个透明的,白色div覆盖一些内容。div下面的部分内容应该是模糊的。效果应该是这样的:
http://codepen.io/Matori/pen/JFzok

random code because StackOverflow forced me to add it

问题是,我没有使用任何背景图像。我的应用程序是一个绘图工具,用户可以在其中绘制形状和文本。因此,磨砂玻璃div覆盖的区域将每秒更新一次。
我试过,但没能成功。不管怎样,够了吗?或者只是在页面加载时截取我的body元素的快照?

最佳答案

有一种方法可以达到效果。
对你的图像应用快速模糊(马里奥·克林格曼的作品),
在25%不透明的白色矩形上覆盖一层“霜”。
模糊脚本在这里:http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html
示例代码和演示:http://jsfiddle.net/m1erickson/PA9NC/

    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");

    var img = new Image();
    img.crossOrigin = "anonymous";
    img.onload = start;
    img.src = "https://dl.dropboxusercontent.com/u/139992952/multple/Dog-With-Cute-Cat.jpg";

    function start() {
        canvas.width = img.width;
        canvas.height = img.height;

        // draw the image

        ctx.drawImage(img, 0, 0);

        // blur the image with blur radius=10

        stackBlurCanvasRGB("canvas", 0, img.height/2+30, img.width, img.height / 2, 10);

        // draw a white rectangle at 25% opacity

        ctx.globalAlpha = 0.25;
        ctx.fillStyle = "white";
        ctx.fillRect(0, img.height/2+30, img.width, img.height / 2);

        // draw some text at 40% opacity

        ctx.globalAlpha = 0.40;
        ctx.font = "102px arial";
        ctx.fillText("Us", 225, 275);
    }

关于javascript - 实时更新毛玻璃UI jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24977996/

10-13 00:30