zoukankan      html  css  js  c++  java
  • jsPlumb 学习笔记

    介绍

       使用svg完成画图,四个概念:

       anchor: endpoint在的位置,可通过name访问

       endpoint:connection的一端节点,通过addPoint makeSource, connect创建,

       connector:连接线

       overlay:connector的装饰组件,如labelarrow

       一个connection由一个connector,两个endpoint,0或者多个overlay构成,每个endpoint有一个关联的anchor.

    anchor有四种类型:

    static:固定不可移动的点
    dynamic:从一组staticanchor中,每次动态选取一个合适的
    perimeter:沿着特定图形的边
    continous:没有固定的位置,根据线另一端点的朝向决定

    connectors四种类型

    Bezier(default):弯曲的贝塞尔曲线,参数是curviness用来定义控制点,默认150
    Straight:stub和gap(线和endpoint的间隔) 
    flowchart: 折线,有stubalwaysRespectStubs gap midpoint(转折点)和cornerRadius
    statemachine:轻微弯曲的线,quadraticBezier(二次贝塞尔曲线),有margin,curviness, proximityLimit(连接到自己时最小距离)

    endpoint有四种类型

    dot:radius cssClass  hoverClass
    rectangle:width height cssClas hoverClass
    blank:不可见,对于可拖拽链接的,使用dot和rectangle参数,并在css中设为透明。
    image:从url得到image,src cssClass hoverClass

    overlay有五种类型

    arrow:控制长宽等
    label:
    plainArrow:三角形箭头
    diamond:菱形
    custom:任意的dom元素,需要实现create方法

    location:

    [0..1]代表connector上的比例
    大于1或小于0代表绝对值的pixel

         

    connections:

    adding:在connectmakeSource  addEndpoint中

        show和hideoverlay:connection.hideOverlay,connection.showOverlay  ,endPoint有同样的方法

         removeoverlay:connection.removeOverlay()

    重用commonsetting

    var common = {
        anchors:[ "BottomCenter", "TopCenter" ],
        endpoints:["Dot", "Blank" ]
    };
    
    jsPlumb.connect({ source:"someElement", target:"someOtherElement" }, common);
    
    jsPlumb.connect({ source:"aThirdElement", target:"yetAnotherElement" }, common);

    画连线

    设置endPoint为 source
    var exampleGreyEndpointOptions = {
        endpoint:"Rectangle",
        paintStyle:{ 25, height:21, fillStyle:'#666' },
        isSource:true,
        connectorStyle : { strokeStyle:"#666" },
        isTarget:true
    };
    var endpoint = jsPlumb.addEndpoint('elementId', exampleGreyEndpointOptions 
    );

    makeTarget和makeSource

         将整个element变成target或source

    jsPlumb.makeSource("el1", {
        anchor:"Continuous",
        endpoint:["Rectangle", { 40, height:20 }],
        maxConnections:3
    });

    uniqueEndpoint:

         设置只有一个 endPoint

    移除connections和endpoint

    jsPlumb.detach(conn);
    删除el上所有链接:jsPlumb.detachAllConnections(el, [params])
    所有链接:jsPlumb.detachEveryConnection();

    通过connect中的parameters参数向jsPlumb中传入参数。

    动画:

    jsPlumb.animate : function(el, properties, options) 调用方式类似于 jQuery

    查询jsPlumb

    可以用来查找connection或者endpoint等

    css样式

        overlays: cssClass

        paintStyle可设置:fillStyle strokeStyle  lineWidth outlineWidth  outlineColordashStyle

    hoverpaint style

        hoverPaintStyle endpointHoverStyles

    [转]http://blog.csdn.net/dananhai381/article/details/38870615

  • 相关阅读:
    微信小程序,搜索结果关键词高亮 wxml不能动态识别html标签
    关于vue 全局loading方案
    element ui树样式问题
    Promise.all( ) 的使用
    关于form表单校验问题
    vue 异步改同步 获取结果 动态函数
    1.关于数据for循环不要用index作为key,2.面二次刷新404问题(空白) 的探讨 3. vue图片上传
    element ui点击切换皮肤
    关于element ui input、以及button样式不能覆盖的解决办法(登录页面)
    vue版本根据当前路由匹配到根父节点并且激活
  • 原文地址:https://www.cnblogs.com/sunjie9606/p/4277086.html
Copyright © 2011-2022 走看看