svg.js知识点简单汇总

2022-02-23  本文已影响0人  花影_62b4

1、获取g元素的宽和高及位置信息,使用.getBBox(),在是svg.js中,使用SVG.find(选择器).bbox();返回的信息比下面的方法要多
let gg=document.getElementById(parentId+"Children").getBBox();
2、整个平移元素
SVG.find("#"+id).transform({translateX:数量,translateY:数量})
3、html元素与svg元素互转:svgElement.node、node.instance
4、清除内部元素 draw.clear();移除某个元素 react.remove();
5、svg里面如果想嵌套html代码,可以使用foreignObject ,此标签不兼容ie11,如果ie11上想用需要自行绘制

var foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
            var body = document.createElement('body'); // you cannot create bodies with .apend("<body />") for some reason
            $(foreignObject).attr("x", x).attr("y", y).attr("width", width).attr("height", height)
            $(foreignObject).append("<div class='my-group' style='width:" + (
                    width - 4
                ) + "px;height:" + (
                    height - 4
                ) + "px;'></div>")

6、显示隐藏事件

// 显示、隐藏事件
        $(document).on('click', "g", function (e) {
            e.stopPropagation();
            e.cancelBubble = true;

            var e = e || window.event;
            var target = e.target || e.srcElement;
            while (target.tagName != "g") {
                target = target.parentNode
            }
            let className = $(target).attr("class")


            if (childrenData.length > 0) {
                if (className && className.indexOf("Table") > -1) {
                    let elementId = className.split('Table')[0];
                    console.log(elementId)
                    let group11 = document.getElementById(elementId + "Children");
                    if (group11) {
                        let status = $(group11).css("display");
                        if (status == 'none') {
                            $(group11).show();
                        } else {
                            $(group11).hide();                                                  
                        }
                    } 

                }
            }
        })
上一篇 下一篇

猜你喜欢

热点阅读