svg鼠标响应事件的四种方法

查看完整版本 : svg鼠标响应事件的四种方法
鼠标响应事件的四种方法,以click事件为例。

Mouse Events - SMIL

xml 代码
  1. xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
  2. "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">  
  3. <svg xmlns="http://www.w3.org/2000/svg"  
  4. xmlns:xlink="http://www.w3.org/1999/xlink">  
  5. <rect x="5" y="5" width="40" height="40" fill="red">  
  6. <set attributeName="fill" to="blue" begin="click"/>  
  7. rect>  
  8. svg>  



实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/svg_smil/click.svg

Mouse Events - Attributes
xml 代码
  1.   
  2. xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
  3. "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [   
  4. xmlns:a3 CDATA #IMPLIED   
  5. a3:scriptImplementation CDATA #IMPLIED>  
  6. a3:scriptImplementation CDATA #IMPLIED>  
  7. ]>  
  8. <svg xmlns="http://www.w3.org/2000/svg"  
  9. xmlns:xlink="http://www.w3.org/1999/xlink"  
  10. xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"  
  11. a3:scriptImplementation="Adobe">  
  12. <script type="text/ecmascript" a3:scriptImplementation="Adobe"> 
  13. function changeColor(evt) {  
  14. var rect = evt.target;  
  15.  
  16. rect.setAttributeNS(null, "fill", "purple")  
  17. }  
  18. ]]>script>  
  19. <rect x="5" y="5" width="40" height="40" fill="red"  
  20. onclick="changeColor(evt)"/>  
  21. svg>  
  22.   
实例演示:

http://www.kevlindev.com/tutorials/basics/events/mouse/svg_js/onclick.svg

Mouse Events - JavaScript+SMIL

xml 代码
  1. xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
  2. "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [   
  3. xmlns:a3 CDATA #IMPLIED   
  4. a3:scriptImplementation CDATA #IMPLIED>  
  5. a3:scriptImplementation CDATA #IMPLIED>  
  6. ]>  
  7. <svg onload="makeShape(evt)"  
  8. xmlns="http://www.w3.org/2000/svg"  
  9. xmlns:xlink="http://www.w3.org/1999/xlink"  
  10. xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"  
  11. a3:scriptImplementation="Adobe">  
  12. <script type="text/ecmascript" a3:scriptImplementation="Adobe"> 
  13. var svgns = "http://www.w3.org/2000/svg";  
  14. function makeShape(evt) {  
  15. if ( window.svgDocument == null )  
  16. svgDocument = evt.target.ownerDocument;  
  17.  
  18. var rect = svgDocument.createElementNS(svgns, "rect");  
  19. rect.setAttributeNS(null, "x", "5");  
  20. rect.setAttributeNS(null, "y", "5");  
  21. rect.setAttributeNS(null, "width", "40");  
  22. rect.setAttributeNS(null, "height", "40");  
  23. rect.setAttributeNS(null, "fill", "green");  
  24.  
  25. var set = svgDocument.createElementNS(svgns, "set");  
  26. set.setAttributeNS(null, "attributeName", "fill");  
  27. set.setAttributeNS(null, "to", "blue");  
  28. set.setAttributeNS(null, "begin", "click");  
  29.  
  30. rect.appendChild(set);  
  31. svgDocument.documentElement.appendChild(rect);  
  32. }  
  33. ]]>script>  
  34. svg>  

实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/js_dom_smil/click_js_smil.svg

Mouse Events - EventListener

xml 代码
  1. xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
  2. "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [   
  3. xmlns:a3 CDATA #IMPLIED   
  4. a3:scriptImplementation CDATA #IMPLIED>  
  5. a3:scriptImplementation CDATA #IMPLIED>  
  6. ]>  
  7. <svg onload="makeShape(evt)"  
  8. xmlns="http://www.w3.org/2000/svg"  
  9. xmlns:xlink="http://www.w3.org/1999/xlink"  
  10. xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"  
  11. a3:scriptImplementation="Adobe">  
  12. <script type="text/ecmascript" a3:scriptImplementation="Adobe"> 
  13. var svgns = "http://www.w3.org/2000/svg";  
  14. function makeShape(evt) {  
  15. if ( window.svgDocument == null )  
  16. svgDocument = evt.target.ownerDocument;  
  17.  
  18. var rect = svgDocument.createElementNS(svgns, "rect");  
  19. rect.setAttributeNS(null, "x", 5);  
  20. rect.setAttributeNS(null, "y", 5);  
  21. rect.setAttributeNS(null, "width", 40);  
  22. rect.setAttributeNS(null, "height", 40);  
  23. rect.setAttributeNS(null, "fill", "green");  
  24.  
  25. rect.addEventListener("click", changeColor, false);  
  26.  
  27. svgDocument.documentElement.appendChild(rect);  
  28. }  
  29.  
  30. function changeColor(evt) {  
  31. var target = evt.target;  
  32. target.setAttributeNS(null, "fill", "purple");  
  33. }  
  34. ]]>script>  
  35. svg>  

实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/js_dom/click_js.svg

你可能感兴趣的:(SVG)