svg和js交互


//1 使用xlink在svg文档中引入javascript:
//<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="3.5in" height="1in">
<title>Listing 24-1 from the XML Bible</title>
<circle id="x" r="30" cx="34" cy="34"
style="fill: red; stroke: blue; stroke-width: 2" />
<script type="text/javascript" xlink:href="a.js">
</script>
</svg>

 

 

2 在svg文档中内嵌入javascript代码:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg"
width="3.5in" height="1in">
<title>Listing 24-1 from the XML Bible</title>
<script type="text/javascript">
<![CDATA[
alert(123);
]]>
</script>
<circle r="30" cx="34" cy="34"
style="fill: red; stroke: blue; stroke-width: 2" />
</svg>

<script type="text/javascript">
<![CDATA[
具体的js代码
]]>

 

3通过HTML 改变SVG中的属性

 

//<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<script type="text/javascript">
<!--
var changeR = function (opration){
var svgDoc = document.getElementByIdx_x("svgmapctrl").getSVGDocument();
   var circle = svgDoc.getElementById("circle1");
   var r = parseInt(circle.getAttribute("r"));
    if(opration == '+' && r<150) circle.setAttribute("r",r+10);
    if(opration == '-' && r>10) circle.setAttribute("r",r-10);
}
//-->
</script>
</head>

<body>
<embed width="300" height="300" type="image/svg-xml" id="svgmapctrl" 
pluginspage="http://www.adobe.com/svg/viewer/install/" src="svg2js.svg" ></embed><br />
<input type="button" value="变大" οnclick="changeR('+')" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="缩小" οnclick="changeR('-')" />
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值