Javascript 如何使用css制作透明的feather pref

Javascript 如何使用css制作透明的feather pref,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想给一些图片添加一个羽毛。这就是我想要的结果: 我意识到这个问题以前已经发布过,并且我已经使用框shadow attr查看了选项。我觉得这个方法有问题。我将把这张图片放在webm上,这样背景就不会一直保持不变了。这就是为什么我必须使羽毛透明,我还没有运气!这在CSS中是否可行?这是迄今为止我使用长方体阴影时得到的结果: 正文{ 背景:绿色; } div{ 背景:红色; 宽度:200px; 高度:142px; 位置:相对位置; 内容:“; 位置:绝对位置; 排名:0; 右:0; 底部:0;

我想给一些图片添加一个羽毛。这就是我想要的结果:

我意识到这个问题以前已经发布过,并且我已经使用
框shadow attr
查看了选项。我觉得这个方法有问题。我将把这张图片放在
webm
上,这样背景就不会一直保持不变了。这就是为什么我必须使羽毛透明,我还没有运气!这在CSS中是否可行?这是迄今为止我使用长方体阴影时得到的结果:

正文{
背景:绿色;
}
div{
背景:红色;
宽度:200px;
高度:142px;
位置:相对位置;
内容:“;
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
-webkit盒阴影:插入0 0 18px 20px#fff;
盒影:插入0 0 18px 20px#fff;
}

您可以使用以下功能:

HTML:


我希望它能帮助你…

你可以用javascript来实现,这里是我刚刚制作的一个简单的jQuery插件,它可以处理背景图像和某些标记

它不是一个完整的、经过测试的插件,我只是在几分钟内完成了它,用几行代码展示了这个概念

$.fn.blurry = function(amount) {
    amount = amount || 10;
    return this.each(function() {
        var els = [];

        for (var i = amount; i--;) {
            var el = $('<' + this.tagName + '/>'),
                a  = amount - i;

            el.css('cssText', this.style.cssText);
            el.css({
                position : 'absolute',
                top      : $(this).position().top  + a,
                left     : $(this).position().left + a,
                height   : $(this).height() - (a*2),
                width    : $(this).width() - (a*2),
                opacity  : 1/i,
                backgroundPosition : '-' + a + 'px -' + a +'px'
            });
            els.push(el);
        }

        $(this).parent().append(els).end().remove();
    });
}
$.fn.furry=函数(金额){
金额=金额| | 10;
返回此值。每个(函数(){
var-els=[];
对于(var i=金额;i--;){
变量el=$(''),
a=金额-i;
el.css('cssText',this.style.cssText);
el.css({
位置:'绝对',
top:$(this).position().top+a,
左:$(this).position().left+a,
高度:$(this).height()-(a*2),
宽度:$(this).width()-(a*2),
不透明度:1/i,
背景位置:'-'+a+'px-'+a+'px'
});
推(el);
}
$(this.parent().append(els.end().remove());
});
}

这里有一个

我发现SVG过滤器是有效的。它确实改变了图像边缘的不透明度,因此它可以处理改变颜色的背景和非固体的背景。它还使用图像的不透明度,因此可以处理非矩形图像

它可以在最新版本的Chrome、Firefox和Edge上运行,但我还没有在IE、Safari或Opera上测试过它,所以如果它可以/不可以,请随时发表评论。for
过滤器
表明,只要IE中包含
-ms-
前缀,它就应该适用于所有最新版本

正文{
背景:url('https://lorempixel.com/800/800/abstract');
背景尺寸:封面;
}
img{
-ms过滤器:url(#feather);
过滤器:url(#feather);
}


只要约束是“使用CSS”,我认为这是不可能做到的。使用一些HTML和CSS剪辑掩码可以很容易做到。没有约束,现在更改了标题这与Rein在问题中的不同之处是什么?看起来是一样的,只是标签不同而已
figure{
  position: relative;
  display: inline-block;
}
figure figcaption{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-shadow: inset 0 0 18px 20px #fff;
}
$.fn.blurry = function(amount) {
    amount = amount || 10;
    return this.each(function() {
        var els = [];

        for (var i = amount; i--;) {
            var el = $('<' + this.tagName + '/>'),
                a  = amount - i;

            el.css('cssText', this.style.cssText);
            el.css({
                position : 'absolute',
                top      : $(this).position().top  + a,
                left     : $(this).position().left + a,
                height   : $(this).height() - (a*2),
                width    : $(this).width() - (a*2),
                opacity  : 1/i,
                backgroundPosition : '-' + a + 'px -' + a +'px'
            });
            els.push(el);
        }

        $(this).parent().append(els).end().remove();
    });
}