Giter VIP home page Giter VIP logo

jsmind's Introduction

jsMind

npm version build-test

jsMind 是一个显示/编辑思维导图的纯 javascript 类库,其基于 html5 canvas 和 svg 进行设计。jsMind 以 BSD 协议开源,在此基础上你可以在你的项目上任意使用。

jsMind is mind map library built by javascript, it base on html5 canvas and svg. jsMind is released under the BSD license, you can embed it in any project as long as you abide by the license.

Project Home

Get Started

<html>
    <head>
        <link
            type="text/css"
            rel="stylesheet"
            href="//cdn.jsdelivr.net/npm/[email protected]/style/jsmind.css"
        />
        <script
            type="text/javascript"
            src="//cdn.jsdelivr.net/npm/[email protected]/es6/jsmind.js"
        ></script>
    </head>
    <body>
        <div id="jsmind_container"></div>

        <script type="text/javascript">
            var mind = {
                // 3 data formats were supported ...
                // see documents for more information
            };
            var options = {
                container: 'jsmind_container',
                theme: 'orange',
                editable: true,
            };
            var jm = new jsMind(options);
            jm.show(mind);
        </script>
    </body>
</html>

Links

Funding

Maintainer

jsmind's People

Contributors

beijihan avatar chimez avatar dependabot[bot] avatar godiard avatar hizzgdev avatar hugocvx avatar lesvate avatar linzb93 avatar madsenfr avatar mbriot avatar mgcyung avatar niubility-sunlight avatar othorizon avatar plylrnsdy avatar ralfduesedau avatar soakit avatar stefh avatar sudwebdesign avatar ttsdzzg avatar w5240 avatar xiaohuoz avatar yanziqi-tw avatar ysk2014 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jsmind's Issues

引入bootstrap3,选中节点字体颜色变为白色

引入bootstrap3,选中节点字体颜色变为白色(文字消失),原因是bootstrap primary定义字体颜色为白色。

我的解决办法是第2172行加入

this.e_editor.style.color = 'black';

这样修改可能并不好,仅作提醒

拖动节点

在拖动节点的时候遇到一个问题 选中之后 进行拖动的时候 鼠标未变成可移动的那个样式,也无法进行拖动。再进行刷新一下就又可以拖动了。

高度是否可以自适应

我按照示例进行实验,发现好像需要指定container高度,然后才能正常绘制脑图。
能否做到高度自适应呢?即container的高度随着脑图实际大小自动调整。

建议新增对事件的支持。

你好,非常感谢你开源的jsMind,对我们项目帮助很大。目前有一个小小的不足和建议,那就是jsMind应该提供对事件的支持。例如:选中事件,拖曳事件,节点改变事件等等。我想这也是jsMind能够更大强大的一个开发方向。

最后谢谢你开发并开源这么好的产品。

Colored labels

Hello,

would it be possible to add different background colors per label?

E.g.
{"id":"root", "isroot":true, "topic":"jsMind","background": "#ffff00"},
{"id":"sub1", "parentid":"root", "topic":"sub1","background": "#ff0000"}

Thanks

节点批注功能

请问有没有计划实现xmind中那种给节点添加批注的功能呢?
或者简单点,单纯显示批注的功能。

Feature discussion: zoom in / zoom out

Hi,
I would like implement a zoom in/zoom out feature.
One alternative is change the font size in the nodes (with the limitation that do not change the image nodes size).

As a experiment, I added the following method in features_2.html and works

    function zoom_out() {
        var localCss = document.getElementById('localStyle');
        if (localCss == null) {
            localCss = document.createElement('style');
            localCss.id = 'localStyle';
            localCss.title = 'localStyle';
            localCss.type = 'text/css';
            localCss.innerHTML = "jmnode {font:10px Arial !important}";
            document.head.appendChild(localCss);
        }
        _jm.show(_jm.get_data());
    }

Obviously a real solution is more complex, we need define the default font size, and increase/decrese the size, and/or other values, this is just a proof of concept.

Before start to code this, I would like to know if is a feature that would be accepted, and if this approach looks right.

是否支持zoomin和zoomout?是的,支持。

请问在jsmind中能否支持放大和缩小呢?在不改变整个网页大小的前提下。
因为我是想将jsmind作为页面的一个局部进行展示,但是脑图太大的时候翻阅有点麻烦。

用例示范需求:对freemind格式远程加载

例子代码中有对json数据格式的远程加载示范,没有对freemind格式的。
例子中的freemind格式加载采用的是file对象,这和远程加载不同,我参照对json尝试对freemind进行加载,老是报错。我加载freemind的代码是:

  jsMind.util.ajax.get("test.mm",function(freemind_data){
   var options = {
            container:'jsmind_container',
            theme:'greensea',
            editable:false
        }
   var mind={
        "meta":{
               "name":"testmm",
               "author":"xdsnet",
              "version":"1.0.0"
        },
        "format":"freemind",
        "data":freemind_data
   };
   jsMind.show(options,mind);
}```

添加右键菜单

建议添加右键添加菜单,目前在我的电脑里没有del键,无法对节点进行删除?是否有其它方式删除?

无效代码问题

jsmind.js 的1772行是定义的_layout_offset_subnodes_height:function(nodes),其实现代码中存在大量无效代码,其中从1774行至1811行的代码都在return之后,是不能执行的,是否是忘记注释掉了?

使用canvas 和svg的区别

我是想问想 我在网上看的demo好像是用svg的居多 想问下这块使用svg和canvas有什么区别吗?

能否添加异步载入数据的方式?

在点击打开节点的加号时,能否在这里添加方法使得能够异步加载数据。有的时候数据量非常大想在点击打开节点的时候载入数据

收起所有节点

请问咱们关闭节点时候能否关闭除二级节点外所有节点的方法?
我发现循环关闭节点很卡,谢谢了。

请教3个小问题: number型id/监听事件/扩展连线

首先非常感谢作者的辛勤劳动!我这里有3个小问题想请教一下:

  1. 表对象的 id,parentid 貌似不能使用 number,这算是个小缺陷
  2. 没有找到关于事件的说明,不知道如何监听例如select/unselect节点,展开/收拢等等事件,能不能通过事件阻止展开/收拢?
  3. 不知道能不能提供一些“画连线功能”的api,能自己实现在非父子节点间画线。

谢谢~

报错:Maximum call stack size exceeded

显示正常:
c04 rafldl7fnx d2k jcw

下面是部分数据:
p5v d vrf8l9 2udd st tg

报错:Maximum call stack size exceeded
2r 0 1of 1cq 1ju4 62g

我把下面这段代码注释掉了,不然会一直提示到上千条警告,然后网页崩溃掉。
logger.warn('the node[id='+nodeid+'] can not be found');
u o 4 166991uloa i8 2e

关于远程加载freemind

昨天提到需要远程加载freemind示范,结果我后来追踪了一下代码,发现是jsMind.util.ajax.request 的实现有兼容性问题造成的,在实现中默认预设了远程获取数据只能是json类的,而不能兼容xml,所以造成这样的问题,解决办法是把var data = eval('('+xhr.responseText+')'); 改为var data = xhr.responseText;即可,这样修改后,远程加载json数据需要在自定义的回调函数中进行数据处理,比如例子中“2_features.html”的远程加载“open remote”的“"open_ajax()”的函数实现中需要把_jm.show(mind);改为_jm.show( eval('('+mind+')'));,这样兼容性更好

特性请求:节点链接属性支持

JSmind很好,对于思维导图等的展示很方便,不过希望增加对节点链接属性的支持,对有链接属性的节点展示一个特定的图标,并且可以点击打开链接。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.