рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдЧрд╛рдКрд╕реА рдмреНрд▓рд░



рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдлреНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреЙрд╕рд┐рдпрди рдмреНрд▓рд░ рдкреНрд░рднрд╛рд╡ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рдФрд░, рдореЗрд░реЗ рдорд╣рд╛рди рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдореБрдЭрд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд┐рд╖рдп рд╡реЗрдм рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рдПрд╕рд╡реАрдЬреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рднреА рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред IE8 рдХреЗ рд▓рд┐рдП- рд╣рдо CSS рдлрд╝рд┐рд▓реНрдЯрд░ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреНрд▓рд░ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХреЗрд╡рд▓ Microsoft рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ (рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВ)ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ jQuery рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрд╛рд╣рд░ jQuery рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪрдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд╛рдо рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рди рдХреЗрд╡рд▓ рддрд╕реНрд╡реАрд░ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрд╕ рдзреБрдВрдзрд▓рд╛ рдХреЛ рднреА рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд▓рдВрдХ рддреАрд╡реНрд░рддрд╛ feGaussianBurur рдЯреИрдЧ рдореЗрдВ stdDeviation рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

< svg width ="100%" height ="100%" version ="1.1"
xmlns ="http://www.w3.org/2000/svg" >

< defs >
< filter id ="Gaussian_Blur" >
< feGaussianBlur in ="SourceGraphic" stdDeviation ="3" />
</ filter >
</ defs >

< ellipse cx ="200" cy ="150" rx ="70" ry ="40"
style ="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"
/>

</ svg >


* This source code was highlighted with Source Code Highlighter .

( рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб)ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдПрдиреАрдореЗрд╢рди "рдЪрд┐рдХреЛрдЯреА" рдирд┐рдХрд▓рд╛ред рдЪрд┐рдХрдиреА рдПрдиреАрдореЗрд╢рди рдХрд╛ рднреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗред



рд╣рдо рджреЛ рдкрд░рддреЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ: рдкрд╣рд▓рд╛ рдПрдХ рдзреБрдВрдзрд▓реА рдЫрд╡рд┐ (рдПрд╕рд╡реАрдЬреА) рд╣реИ, рджреВрд╕рд░рд╛ рдореВрд▓ рдЫрд╡рд┐ рд╣реИ (рдирд┐рдпрдорд┐рдд рдПрдЪрдЯреАрдПрдордПрд▓ рдЖрдИрдПрдордЬреА), рдФрд░ рд╣рдо рдЗрд╕рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА: рдореВрд▓ рдЫрд╡рд┐ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкреИрди рдЯреИрдЧ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдзреБрдВрдзрд▓реА рддрд╕реНрд╡реАрд░ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреАред

< span class ="blurImageContainer" >
< img class ="blurImage" src ="a.jpg" >
</ span >


* This source code was highlighted with Source Code Highlighter .

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
var SVG = {

//
svgns: 'http://www.w3.org/2000/svg' ,
xlink: 'http://www.w3.org/1999/xlink' ,

// svg (name - , attrs - )
createElement: function (name, attrs){
var element = document .createElementNS(SVG.svgns, name);

if (attrs) {
SVG.setAttr(element, attrs);
}
return element;
},

// (element - SVG-)
setAttr: function (element, attrs) {
for ( var i in attrs) {
if (i === 'href' ) { // href xlink
element.setAttributeNS(SVG.xlink, i, attrs[i]);
} else { //
element.setAttribute(i, attrs[i]);
}
}
}
}


* This source code was highlighted with Source Code Highlighter .
рд╣рдо рд╕рднреА рдХреЛ рдХрдИ svg рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдПрдХ рд╣реА рддрддреНрд╡ рдкрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд░ рдмрд╛рд░ рд╣рдо рддрддреНрд╡ рдХреЛ рдзрдмреНрдмрд╛ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рддрддреНрд╡ рдХреЛ рд╕реНрд╡рдпрдВ svg рддрддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЖрдИрдбреА рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ рд╣реИ:
var blurredId = Math.random(); //
...
$ this .children( '[id^="blurred"]' ).remove(); //
...

svg = SVG.createElement( 'svg' , {
...
id: 'blurred' +blurredId
});


* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рд╣рдореЗрдВ рдЫрд╡рд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдзреБрдВрдзрд▓реЗ рдлрд┐рд▓реНрдЯрд░ рдХреА рдЖрдИрдбреА рдХреЗ рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ:
var svg, filterId, filter, gaussianBlur, image;
svg = SVG.createElement( 'svg' , { // SVG
xmlns: SVG.svgns,
version: '1.1' ,

//
width: imgWidth,
height: imgHeight,

id: 'blurred' +blurredId
});

filterId = 'blur' +blurredId; // ; image
filter = SVG.createElement( 'filter' , { //
id:filterId
});

gaussianBlur = SVG.createElement( 'feGaussianBlur' , { //
'in' : 'SourceGraphic' , //in тАФ ; ,
stdDeviation: args.deviation // (int)
});

image = SVG.createElement( 'image' , { //,
x: 0,
y: 0,

//,
width: imgWidth,
height: imgHeight,
href: imgSrc,

style: 'filter:url(#' +filterId+ ')' //
});

filter.appendChild(gaussianBlur); //
svg.appendChild(filter); // SVG
svg.appendChild(image); // SVG
this .appendChild(svg); // SVG span ( this )


* This source code was highlighted with Source Code Highlighter .

рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрд╕рд╡реАрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
< svg xmlns ="http://www.w3.org/2000/svg" version ="1.1" width ="144" height ="144" id ="blurred0.9918661566916853" >
< filter id ="blur0.9918661566916853" >
< feGaussianBlur in ="SourceGraphic" stdDeviation ="2" ></ feGaussianBlur >
</ filter >
< image x ="0" y ="0" width ="144" height ="144" href ="a.jpg" style ="filter:url(#blur0.9918661566916853)" ></ image >
</ svg >


* This source code was highlighted with Source Code Highlighter .


рдЕрдм рдЖрдИрдИ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмреНрд▓рд░ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдореА рдзреБрдВрдзрд▓рд╛ рдХрд╛рдлреА рдЧрд╛рдКрд╕реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╣рдо рдПрдХ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ: рдПрдХ рджреВрд╕рд░реА рдЫрд╡рд┐ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдиреАрдЪреЗ рд░рдЦреЗрдВ, рдЗрд╕реЗ рдзреБрдВрдзрд▓рд╛ рдХрд░реЗрдВред
$img.clone() //
.css({ //

// ; ,
filter: 'progid:DXImageTransform.Microsoft.Blur(pixelradius=' + args.deviation*2 + ')' ,

// ,
top: -args.deviation*2,
left: -args.deviation*2,

//- ;
width: imgWidth,
height: imgHeight,
})
.attr( 'id' , 'blurred' +blurredId)
.appendTo( this );


* This source code was highlighted with Source Code Highlighter .

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ jQuery рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
jQuery(window).load( function ($){ // , load ready
$( '.blurImageContainer .blurImage' ).css({opacity: 0}); //

$( '.blurImageContainer' ).gaussianBlur({
deviation: 3, //
imageClass: 'blurImage' //
});

$( '.blurImageContainer' ).hover( function (){
$( '.blurImage' , this ).animate({opacity: 1}, 500);
}, function (){
$( '.blurImage' , this ).animate({opacity: 0}, 500);
});
});


* This source code was highlighted with Source Code Highlighter .


рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рднреА рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдпрд╛ рдХрдорд┐рдпреЛрдВ рдХреА рд╕реВрдЪрдирд╛ рджреЗрдВред

рд╕рдВрджрд░реНрдн:
finom.ho.ua/blur - рдЙрджрд╛рд╣рд░рдг
finom.ho.ua/blur/jquery.gaussian-blur.js - рдкреНрд▓рдЧрдЗрди рдХреЛрдб
www.w3.org/TR/SVG/filters.html - рдПрд╕рд╡реАрдЬреА рдореЗрдВ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢

рдкреБрдирд╢реНрдЪ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рди рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдмрд▓реНрдХрд┐ html рдХреЗ рдкреВрд░реЗ рдЯреБрдХрдбрд╝реЗ рднреАред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ svg (рдареАрдХ рдЙрд╕реА рддрд░рд╣) рдореЗрдВ html рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЧреНрд░рд╛рдлрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдкреНрд░рд┐рдп рд╣реИрдмрд░рд╛ рд▓реЛрдЧ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

Source: https://habr.com/ru/post/In123035/


All Articles