源代码,可以copy直接运行
JavaScript部分

Home  >  Article  >  Web Front-end  >  SVG-based web page graphics drawing API introduction and programming demonstration_javascript skills

SVG-based web page graphics drawing API introduction and programming demonstration_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:30:551022browse
1: What is SVG
SVG is a 2D graphics description language released by W3C in 1999. It is a markup language purely based on XML format. The full name of SVG
is scalable vector graphics and traditional Raster There is a big difference
in the format of graphics (JPG, PNG, GIF, etc.). SVG is a 2D graphics development platform, including two parts, one is data description based on XML language, and the other part is a programmable API. Its key features support graphics, text, gradient fill, brush style, graphics
Special effect filters such as Gaussian blur will be demonstrated in the code later. It also supports various mouse events and DOM part
API. Almost all mainstream browsers support the rendering and rendering of SVG graphics format. IE9 and above also begin to
support SVG. In lower versions of IE, plug-in support is required.
To learn more about SVG, visit here: http://www.w3.org/Graphics/SVG/About.html


Two: SVG API programming demonstration in JavaScript Create and obtain SVG object

Copy code The code is as follows:
// create svg object
var mySvg = document.createElementNS("http://www.w3.org/2000/svg","svg");
mySvg.setAttribute("version","1.2");// IE9 support SVG 1.1 version
mySvg.setAttribute("baseProfile","tiny");
container.appendChild(mySvg);

Create a rectangular shape in SVG:

Copy code The code is as follows:
var c1 = document.createElementNS("http://www.w3.org /2000/svg","rect");
c1.setAttribute("x","20");
c1.setAttribute("y","20");
c1.setAttribute( "width","150");
c1.setAttribute("height","150");
c1.setAttribute("fill","rgb(0,0,255)");
c1 .setAttribute("stroke","rgb(0,0,0)");
c1.setAttribute("stroke-width","4");
mySvg.appendChild(c1);

Implement text drawing in SVG:

Copy code The code is as follows:
// SVG draw text
var stext = document.createElementNS("http://www.w3.org/2000/svg","text");
stext.setAttribute("x","700 ");
stext.setAttribute("y","100");
stext.setAttribute("font-size","18px");
stext.setAttribute("fill","# FF0000");
var textString = document.createTextNode("Hello SVG");
stext.appendChild(textString);
mySvg.appendChild(stext);

at Implement mouse click event processing and MouseUp event processing on SVG objects:

Copy code The code is as follows:
// mouse event handling
c1.addEventListener("click",changeColor,false);
c2.addEventListener("mouseup", changeColor,false);

Via SVG graphics Filter to implement Gaussian blur:

Copy code The code is as follows:

Original image



Running effect:

Source code, you can copy and run directly
JavaScript part

Copy Code The code is as follows:

window.onload = function() {
// get DIV
var container = document.getElementById("svgContainer");
// create svg object
var mySvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
mySvg.setAttribute("version", "1.2");// IE9 support SVG 1.1 version
mySvg.setAttribute("baseProfile", "tiny");
container.appendChild(mySvg);

// create svg shape - rectangle
var c1 = document.createElementNS("http://www.w3.org/2000/svg", "rect");
c1.setAttribute("x", "20");
c1.setAttribute("y", "20");
c1.setAttribute("width", "150");
c1.setAttribute("height", "150");
c1.setAttribute("fill", "rgb(0,0,255)");
c1.setAttribute("stroke", "rgb(0,0,0)");
c1.setAttribute("stroke-width", "4");
mySvg.appendChild(c1);

// create svg shape - circle
var c2 = document.createElementNS("http://www.w3.org/2000/svg", "circle");
c2.setAttribute("cx", "250");
c2.setAttribute("cy", "100");
c2.setAttribute("r", "60");
c2.setAttribute("fill", "#996699");
c2.setAttribute("stroke", "#AA99FF");
c2.setAttribute("stroke-width", "7");
mySvg.appendChild(c2);

// create svg shape - ellipse
var c3 = document.createElementNS("http://www.w3.org/2000/svg", "ellipse");
c3.setAttribute("cx", "450");
c3.setAttribute("cy", "100");
c3.setAttribute("rx", "100");
c3.setAttribute("ry", "50");
c3.setAttribute("fill", "#FF0000");
c3.setAttribute("stroke", "purple");
c3.setAttribute("stroke-width", "3");
mySvg.appendChild(c3);

// create svg shape - draw lines
for(var i=0; i<10; i )
{
var sline = document.createElementNS("http://www.w3.org/2000/svg", "line");
var x1 = 580 i*10;
console.log(x1);

sline.setAttribute("x1", x1.toString());
sline.setAttribute("y1", "10");
sline.setAttribute("x2", x1.toString());
sline.setAttribute("y2", "180");
sline.setAttribute("stroke", "rgb(0,255,0)");
sline.setAttribute("stroke-width", "2");
mySvg.appendChild(sline);
}

// SVG draw text
var stext = document.createElementNS("http://www.w3.org/2000/svg", "text");
stext.setAttribute("x", "700");
stext.setAttribute("y", "100");
stext.setAttribute("font-size", "18px");
stext.setAttribute("fill", "#FF0000");
var textString = document.createTextNode("Hello SVG");
stext.appendChild(textString);
mySvg.appendChild(stext);

// mouse event handling
c1.addEventListener("click", changeColor, false);
c2.addEventListener("mouseup", changeColor, false);
};
function changeColor(evt) {
var target = evt.target;
target.setAttributeNS(null, "fill", "green");
}

HTML部分:
复制代码 代码如下:



Gloomyfish SVG Demo





Original image





Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn