Show HN: React component for blurred backgrounds
github.com
github.com
I noticed that you're caching `this` as a variable:
var Blur = this,
And it looks like you're doing so to avoid scope problems in anonymous functions: Blur.img.onload = function(){
stackBlurImage( Blur.img, Blur.canvas, blurRadius, Blur.width, Blur.height)
};
I personally don't like this style. It makes it harder to read the code. If someone misses that `var Blur = this` line, they could get confused and either not use it, or use it incorrectly.Instead, since you're using ES6, I suggest using the fat arrow:
this.img.onload = () => {
stackBlurImage(this.img, this.canvas, blurRadius, this.width, this.height);
};
(I'm used to writing Coffeescript instead of ES6, so sorry if minor syntax details are wrong.)This is largely a stylistic choice. You can feel free to do things however you want, and if it works, it works. But generally I prefer to make sure things are really clear, and that the Javascript features aren't obscured.
I think it makes it much easier to read the code. Assigning it to a variable gives a nice, short description of what you're actually working with.
Is there some advantage I'm missing?
http://blogs.msdn.com/b/ie/archive/2011/10/14/svg-filter-eff...
Edit: to clarify, the image would need to be moved into the SVG (which could be a simple DOM manipulation of the original <img> tag).
Of course, you could always just force IE9 mode... ;)
Suggestion: Add support for frosted glass since it's an easy extension.
You would only need another parameter for an RGBA color for "tint". Then draw over the blurred area with this color.
For example, setting tint to rgba(255,255,255,0.15) will look like the iOS style frosted effect. Varying the rgb and alpha can show other interesting options.