为了在ie上兼容svg,我真是弄了好久啊。 1. path属性改变,但页面不实时更新: 把path清空,在append var oldNode = $("path", context)[0];var
为了在ie上兼容svg,我真是弄了好久啊。
1. path属性改变,但页面不实时更新: 把path清空,在append
var oldNode = $("path", context)[0]; var clonePath = oldNode.cloneNode(true);var parentTmp = $("path", context).parent();$(parentTmp).empty();$(parentTmp).append($(clonePath));
2. text,tspan不能直接通过$.html()塞入:使用createElementNS, setAttribute
for(var i = 0; i < splitNameArr.length; i++){var txtSpan = document.createElementNS('http://www.w3.org/2000/svg','tspan');txtSpan.setAttribute("x", 50);txtSpan.textContent = splitNameArr[i]; if(i == 0){ txtSpan.setAttribute("y", firstEleY);}else{ txtSpan.setAttribute("dy", 15);} $("text", this.dom).append(txtSpan);}
3. getBoundingClientRect,对于带有marker属性的path,计算出来的height,width值有误,要比实际值大很多。解决的方案:getBBox()
var p = $("path", this.dom)[0].getBBox();return {width: p.width, height: p.height};
4. 鼠标offsetX,offsetY值不对,进场跳动,不明原因。
_this.endX = e.pageX - $(svg).offset().left;_this.endY = e.pageY - $(svg).offset().top;