>必须完成“直播”(我无法预渲染图像的模糊版本)
>就像我说的那样,只在Y轴上(就像运动模糊,但是垂直)
>需要动画制作
>应该在IE9中工作
我的第一个想法是使用一个简单的CSS过滤器:
img {
filter: blur(20px);
}
我可以通过添加转换(过渡:过滤0.2s线性)来设置动画,但它只会创建高斯模糊,这不是我想要的效果.语法不支持filter:blur(0 10px);将模糊仅限制为一个轴.
然后我读到模糊过滤器(以及其他)实际上只是SVG过滤器的简写,如果需要,可以手动编写.所以我创建了一个名为filter.svg的SVG,它仅指定沿Y轴(0 20)的20px模糊:
<?xml version="1.0" standalone="no"?>
<svg width="1" height="1" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="0 20" />
</filter>
</defs>
</svg>
并像这样应用它:
img {
filter: url("filter.svg#blur");
}
这完全有效……但仅限于Firefox. Safari/Chrome don’t support url()
作为过滤器的值.另外,我无法为它设置动画,因为值是URL而不是数字,因此转换不起作用.
最重要的是,我认为其中任何一种方法都不是work in IE9.
所以:有什么方法可以做我想做的事情吗?我已经研究过使用canvas作为替代方案,但是找不到任何只有一个方向的模糊的例子.
CSS3确实有它的限制,它在交互值方面非常有限.
Jquery还增加了跨平台稳定性.
JQuery的
var $img = $(‘.image’)
$img.hide();
$(document).ready(function(){
$($IMG).show().动画({
不透明度:100,
paddingTop:’= 80′
,500
});
这是一个如何与javacript一起使用的示例
愚弄不透明.
<!DOCTYPE html>
<风格>
#容器 {
宽度:400px;
身高:400px;
位置:相对;
背景:黄色;
}
#animate {
宽度:50px;
身高:50px;
位置:绝对;
背景颜色:红色;
}
<身体GT;
< p为H.
点击我
< / p为H.
< div id =“container”>
< / DIV>
<脚本>
function myMove(){
var elem = document.getElementById(“animate”);
var pos = 0;
var id = setInterval(frame,5);
function frame(){
if(pos == 150){
clearInterval(ID);
} else {
pos;
elem.style.left = pos’px’;
}
}
}
< /脚本>
< /体>
`
相关文章
转载注明原文:css3 – 仅在一个方向上模糊CSS(运动模糊) - 代码日志