svgjquery的简单介绍

jquery ui支持svg中的元素拖放么

!DOCTYPE HTML

站在用户的角度思考问题,与客户深入沟通,找到金秀网站设计与金秀网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖金秀地区。

html

head

title/title

link href="css/reset.css" rel="stylesheet" type="text/css"

link href="css/layout.css" rel="stylesheet" type="text/css"

link href="css/style.css" rel="stylesheet" type="text/css"

script src="js/jquery.js" type="text/javascript" /script

script src="js/jquerysvg/jquery.svg.js" type="text/javascript" /script

script src="js/jquery-ui.js" type="text/javascript" /script

script type="text/javascript"

jQuery(document).ready(function(){

$('#target').svg({onLoad: drawInitial});

$('circle').click(function(e){

drawShape(e);

var shape = this.id;

});

$('.drag').mousedown(function(e){

var shape = this.id;

this.setAttribute("cx", e.pageX);

this.setAttribute("cy", e.pageY);

});

})

function drawInitial(svg) {

svg.add($('#svginline'));

}

function drawShape(e) {

var svg = $("#target").svg('get');

$('#result').text(e.clientX + ": " + e.pageX);

var dragme = svg.circle(e.clientX, e.clientY, 5, {fill: 'green', stroke: 'red', 'stroke-width': 3, class_: 'drag'});

//$(dragme).draggable();

}

/script

/head

body

div id="target" /div

svg:svg id="svginline"

svg:circle id="circ11" class="area" cx="75" cy="75" r="50" stroke="black" stroke-width="2" fill="red"/

/svg:svg

div id="result" ffff/div

/body

/html

svg元素的基础操作

之前普通dom节点用jquery来写,svg之类的节点操作用d3.js来写,然后现在尝试写一个小组件,就想写个不依赖任何库的版本。

之前用d3.js来写可视化组件,有着库依赖的问题,这次想自己把库的依赖去掉,用原生态javascript写。

然后第一件事情我就懵逼了,用jquery的 $("svg/svg ) 生成也是一样。

然后出来的是一个普通标签名叫svg的标签,没有svg的任何渲染

而本来应该是下图的效果的。

然后就顺便普及了svg的知识,svg虽然和dom元素很像,但是实际上是xml,它比html更加严格,有着自己的命名空间,如果你在html里面直接写,那么会被加上命名空间解析,如果你想要用js来创建,那么你就得自己来写。

我写的是一个词云插件,我的算法是根据一个text来判断碰撞与否,所以我要知道两个text的位置和高度和宽度。

对于普通的元素,可以通过jquery.css("width")来实现,但是这个对于svg元素,jquery也再一次失效。而这个时候,getBoundingClientRect(),就起效了。

【在线等】jquery通过append添加的svg标签无法显示

首先,jquery是操作普通xhtml的,对应svg这种特殊的标签,或者说xml,浏览器如何区分,当然是通过命名空间:namespaceURI,比如普通html的是,而svg也有自己的命名空间:,jquery在操作的时候没有加以区分,因此导致了这样的错误。怎么办,使用setAttributeNS创建svg标签即可。

其次,我们创建大量标签的时候,喜欢innerHTML=template这种方式,svg也可以,应该说大部分浏览器都可以,可是有些浏览器不可以,我们就需要自己提供兼容的innerSVG方法了。

最后,关于上面说的二点,你都可以对比这个例子。

轻量级HTML5插件使用jQuery绘制SVG图形轮廓线路径动画教程

看到网页上炫酷的图形轮廓线路径动画你是否会动心,想要自己来制作一个呢?其实这个特效实现起来并不难,使用轻量级HTML5插件jquery-drawsvg就可以实现了,jquery-drawsvg是一款轻量级的使用jQuery来绘制SVG图形轮廓线路径动画的插件。该插件使用jQuery内置的动画引擎来使SVG元素中path元素产生动画,其底层实现使用的是stroke-dasharray和stroke-dashoffset属性。

该SVG路径动画插件的特点有:

轻量级,压缩后小于2kb

使用简单

支持Easing过渡动画效果

演示地址:

插件下载地址:

使用方法:

使用该SVG图形轮廓线路径动画插件需要引入jQuery和jquery.drawsvg.js文件。

script src="js/jquery.min.js"/script

script src="js/jquery.drawsvg.js"/script

初始化插件

在页面DOM元素加载完毕之后,可以通过下面的方法来使SVG图形生成轮廓线动画效果。

首先将初始化的对象实例保存为一个变量:

var mySVG = $('#my_svg_element').drawsvg();

然后就可以执行动画效果了:

mySVG.drawsvg('animate');

配置参数

下面是该SVG路径动画创建的可用配置参数:

参数类型默认值描述durationInteger1000完成每一个路径动画的持续时间staggerInteger200每一个路径动画开始前的延迟时间easingStringswing使用jQuery

Easing插件的过渡动画效果reverseBooleanfalse是否反向绘制callbackFunctionfunction()

{}路径动画完成之后的回调函数

如何将另存为PNG图片,最好是用js、JQuery来实现

svg可以转成canvas,canvas再转图片!

var svgHtml = svgContainer.innerHTML();//获取svg

将svg转成canvas需要用到google的一个插件canvg,可以上官网下载

接下来就是调用该插件的canvg(canvasId,svgHtml)方法来转成canvas,这个方法第一个参数就是canvas标签的id!

var imgSrc = document.getElementById(content).toDataUrl("image/png");//将canvas转成图片

用jquery怎样得到标签里的属性值?如下

var _o = document.getElementById('test');//元素ID

var list = _o.attributes;

for(var i = 0 ; i list.length ; i++){

alert(list[i].name+'='+list[i].value);

}


分享标题:svgjquery的简单介绍
网页路径:http://hbruida.cn/article/dschpdc.html