新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论SVG, GML, X3D, VRML, VML, XAML, AVALON, Batik等基于XML的图形技术,以及有关GIS的应用。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 SVG/GML/VRML/X3D/XAML 』 → 有没有朋友搞过SVG的图形移动??? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3370 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 有没有朋友搞过SVG的图形移动??? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     moonsky731 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:102
      门派:XML.ORG.CN
      注册:2005/2/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给moonsky731发送一个短消息 把moonsky731加入好友 查看moonsky731的个人资料 搜索moonsky731在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看moonsky731的博客楼主
    发贴心情 有没有朋友搞过SVG的图形移动???

    大家都知道,在html的Embed长宽大小是固定的,我用ZoomIn把图像放大后,一般viewer会默认看到的是原图左上角的一部分,这样其他部分就看不到,大家有没有写过类似的JS来控制放大后图形的托拽????就像ACDSee那样,一个图形如果太大,可以通过手型光标托拽??????

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/11 10:17:00
     
     edison1024 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:55
      积分:292
      门派:XML.ORG.CN
      注册:2005/1/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给edison1024发送一个短消息 把edison1024加入好友 查看edison1024的个人资料 搜索edison1024在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看edison1024的博客2
    发贴心情 
    用viewbox就可以了。具体自己去查吧。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/12 10:49:00
     
     SCYANGYU 帅哥哟,离线,有人找我吗?处女座1971-9-20
      
      
      威望:7
      等级:大四(每天看1小时莱昂氏)
      文章:217
      积分:1281
      门派:XML.ORG.CN
      注册:2005/2/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给SCYANGYU发送一个短消息 把SCYANGYU加入好友 查看SCYANGYU的个人资料 搜索SCYANGYU在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看SCYANGYU的博客3
    发贴心情 
    论坛中前面有一个例子,大家可以看看!

    ----------------------------------------------
    http://borland.mblogger.cn/scyangyu/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/14 8:00:00
     
     molester 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:48
      积分:224
      门派:XML.ORG.CN
      注册:2004/4/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给molester发送一个短消息 把molester加入好友 查看molester的个人资料 搜索molester在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看molester的博客4
    发贴心情 
    拖动的话,你去记录屏幕坐标的变化,然后换算成绝对坐标的变化,修改viewbox就可以了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/22 11:14:00
     
     mi9 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:49
      积分:251
      门派:XML.ORG.CN
      注册:2005/3/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mi9发送一个短消息 把mi9加入好友 查看mi9的个人资料 搜索mi9在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mi9的博客5
    发贴心情 
    以下是引用molester在2005-3-22 11:14:16的发言:
    拖动的话,你去记录屏幕坐标的变化,然后换算成绝对坐标的变化,修改viewbox就可以了


    那具体的转换思路是什么呢?透露一下吧
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/29 9:47:00
     
     henrybenben 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:50
      积分:257
      门派:XML.ORG.CN
      注册:2005/4/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给henrybenben发送一个短消息 把henrybenben加入好友 查看henrybenben的个人资料 搜索henrybenben在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看henrybenben的博客6
    发贴心情 
    setCurrentRoom();
    } // end function Initialize()

    function setCurrentRoom(){

       viewBox = SVGRoot.getAttribute('viewBox');
       var viewVals = viewBox.split(' ');
       currentPosition = parseFloat(viewVals[0]);

       if (currentPosition % 400 != 0) {
          currentRoomId = null;
          currentRoomLabel = "None.  Please scroll to desired room.";
       } else if (currentPosition / 400 == 0) {
          currentRoomId = "Room102";
          currentRoomLabel = "Room 102";
       } else if (currentPosition / 400 == -1) {
          currentRoomId = "Room101";
          currentRoomLabel = "Room 101";
       } else if (currentPosition / 400 == 1) {
          currentRoomId = "Room103";
          currentRoomLabel = "Room 103";
       }
    document.getElementById("currentRoom").innerHTML = currentRoomLabel;

    }
    //panDoc() 函数控制向左和向右滚动:
    function panDoc(evt){

    //   currentPosition = parseFloat(viewVals[0]);
    if (goLeft == true){
          if (currentPosition > -400) {
              currentPosition = currentPosition - 200;
          }
          goLeft = false;
       }

       if (goRight == true){
         if (currentPosition < 400) {
              currentPosition = currentPosition + 200;
         }
         goRight = false;
       }
    viewBox = SVGRoot.getAttribute('viewBox');
       var viewVals = viewBox.split(' ');

       viewVals[0] = currentPosition;
       SVGRoot.setAttribute('viewBox', viewVals.join(' '));

    setCurrentRoom();
    } // end function panDoc()

    function toExec(){

       if (currentRoomId == null) {

          alert("Ambiguous room position! \n Please align a room "+
             "precisely before attempting to change room type.");

       } else {

          SVGDoc.getElementById(currentRoomId+"Rect")
                                          .setAttribute("fill", "#FF0000");

          innerSVG = SVGDoc.getElementById(currentRoomId);

          oldChild = SVGDoc.getElementById(currentRoomId+"Label");
          innerSVG.removeChild(oldChild);

          oldChild = SVGDoc.getElementById(currentRoomId+"Type");
          innerSVG.removeChild(oldChild);
    myData = SVGDoc.createTextNode("Executive Office");
          newText = SVGDoc.createElementNS(svgns, "text");
          newText.setAttributeNS(null, "id", currentRoomId+"Type");
          newText.setAttributeNS(null, "x", "55px");
          newText.setAttributeNS(null, "y", "100px");
          newText.setAttributeNS(null, "font-size", "24pt");
          newText.setAttributeNS(null, "stroke", "white");
          newText.appendChild(myData);
          SVGDoc.getElementById(currentRoomId).appendChild(newText);

          myData = SVGDoc.createTextNode(currentRoomLabel);
          newText = SVGDoc.createElementNS(svgns, "text");
          newText.setAttributeNS(null, "id", currentRoomId+"Label");
          newText.setAttributeNS(null, "x", "55px");
          newText.setAttributeNS(null, "y", "150px");
          newText.setAttributeNS(null, "font-size", "24pt");
          newText.setAttributeNS(null, "stroke", "white");
          newText.appendChild(myData);
          SVGDoc.getElementById(currentRoomId).appendChild(newText);

       }

    } // end function toExec()
    试试这几个函数,我用得可以

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/13 22:45:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/2/27 21:38:33

    本主题贴数6,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms