以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  求教大家,svg的问题,急,希望大家帮忙  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=76283)


--  作者:raulyao
--  发布时间:8/6/2009 11:20:00 AM

--  求教大家,svg的问题,急,希望大家帮忙
现在用svg实现了画曲线,希望在svg图中可以像股票形式那样,比如将鼠标放在曲线一点上可以显示当前点的坐标,或者有横纵轴线拖拽到某一点,可以显示坐标,不知道怎样实现,问问大家,看有没有好的方法,很急,希望大家帮忙
--  作者:raulyao
--  发布时间:8/6/2009 12:39:00 PM

--  
自顶下,大家帮忙啊
--  作者:raulyao
--  发布时间:8/9/2009 10:39:00 PM

--  
没有 高手帮帮忙吗
--  作者:AaronQian
--  发布时间:9/9/2009 3:25:00 PM

--  
你得自己写消息响应,用JS写
--  作者:raulyao
--  发布时间:9/15/2009 11:10:00 AM

--  
我知道要用js写,不过不知道如何下手
--  作者:AaronQian
--  发布时间:9/15/2009 11:53:00 AM

--  
唉,来送你段代码


<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="getSVGDoc(evt)" onzoom="ZoomControl()">
  <title>SVG - Learning By Coding</title>
  <defs>

    <script type="text/javascript">
      <![CDATA[

       var svgdoc,svgroot;


       function getSVGDoc(load_evt)
       {
         svgdoc=load_evt.target.ownerDocument;
         svgroot=svgdoc.documentElement;
       }


       function ShowTooltip(mousemove_event)
       {
         var ttrelem,tttelem,posx,posy,curtrans,ctx,cty,txt,ttRect_ico;

         ttrelem=svgdoc.getElementById("ttr");
         tttelem=svgdoc.getElementById("ttt");
         ttRect_ico = svgdoc.getElementById("Rect_ico");

         posx=mousemove_event.clientX;
         posy=mousemove_event.clientY;

         txt="x="+posx+" | y="+posy;
         tttelem.childNodes.item(0).data=txt;

         curtrans=svgroot.currentTranslate;
         ctx=curtrans.x;
         cty=curtrans.y;

         ttRect_ico.setAttribute("x", posx-ctx);
         ttRect_ico.setAttribute("y", posy-cty);
         
         ttrelem.setAttribute("x",posx-ctx);
         ttrelem.setAttribute("y",posy-cty-20);
         
         tttelem.setAttribute("x",posx-ctx+5);
         tttelem.setAttribute("y",posy-cty-8);
         
         ttrelem.setAttribute("width",tttelem.getComputedTextLength()+10);
         
         tttelem.setAttribute("style","fill: #00C; font-size: 11px; visibility: visible");
         ttrelem.setAttribute("style","fill: #FFC; stroke: #000; stroke-width: 0.5px;           visibility: visible");
       }


       function HideTooltip()
       {
         var ttrelem,tttelem;

         ttrelem=svgdoc.getElementById("ttr");
         tttelem=svgdoc.getElementById("ttt");
         ttrelem.setAttribute("style","visibility: hidden");
         tttelem.setAttribute("style","visibility: hidden");
       }


       function ZoomControl()
       {
         var curzoom;

         curzoom=svgroot.currentScale;
         svgdoc.getElementById("tooltip").setAttribute("transform","scale("+1/curzoom+")");
       }
       ]]>
    </script>
  </defs>
  
  <text x="20" y="30" style="cursor: help;fill: #000; font-size: 24px">
    Tooltip bei Mausbewegung anzeigen
  </text>
  <text x="30" y="435" style="cursor: help">help</text>
  <rect x="20" y="50" width="500" height="300" style="cursor: crosshair;fill: #FFF; stroke: #000" onmousemove="ShowTooltip(evt)" onmouseout="HideTooltip()"/>
  
  <g id="tooltip">
    <rect id="ttr" x="0" y="0" rx="5" ry="5" width="100" height="16" style="visibility: visiable"/>
    <rect id="Rect_ico" rx="5" ry="5" x="0" y="0" width="10" height="10" fill="red" style="visibility: visiable"/>
    <text id="ttt" x="0" y="0" style="visibility: visible">dyn. Text</text>
  </g>
</svg>


--  作者:raulyao
--  发布时间:9/18/2009 9:35:00 AM

--  
太感谢了,我先仔细看看,有问题,就PM你哦
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms