有赞的微商城可视化编辑是如何做到的?

有赞的可视化图片描述

如上图:
随便点击椭圆中的一项添加,会弹出一个对应的div,这个div是事先定义好的吗?是不是通过display的两个属性显示和隐藏的,即none表示不显示,block表示显示呢??
还是说把这个弹出的div保存起来到数组中呢?
如果有对这个熟悉了解的,请大家解答一下,感激不尽!!!

阅读 7.7k
5 个回答

事先定义好或动态生成都可以~

例如动态生成:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .dynamidDiv{
            width:100%;
            height:100%;
            border:1px solid red;
            background-color: red;
            box-sizing: border-box;
        }
    </style>
</head>
<body>

<div style="height:30px;">
<div id="showDiv" style="display:inline-block;width: 100px;height: 20px;background-color: white;border: 1px solid gray;line-height: 20px;text-align: center">显示DIV</div>
<div id="closeDiv" style="display:inline-block;width: 100px;height: 20px;background-color: white;border: 1px solid gray;line-height: 20px;text-align: center">关闭DIV</div>
</div>
<div id="dynamicContainer" style="display: none;width:300px;height:300px;margin-top:20px;"></div>
<script>

    function createDiv(){
        var containerDiv=document.getElementById("dynamicContainer");
        var newDynamicDiv=document.createElement("div");
        document.getElementById("dynamidDiv")&&containerDiv.removeChild(document.getElementById("dynamidDiv"));
        newDynamicDiv.id="dynamidDiv";
        newDynamicDiv.setAttribute("class","dynamidDiv");
        containerDiv.appendChild(newDynamicDiv);
        containerDiv.style.display="block";

    }

    function closeDiv(){
        var containerDiv=document.getElementById("dynamicContainer");
        document.getElementById("dynamidDiv")&&containerDiv.removeChild(document.getElementById("dynamidDiv"));
        containerDiv.style.display="none";
    }

    document.getElementById("showDiv").addEventListener("click",function(){
        createDiv();

    },false);

    document.getElementById("closeDiv").addEventListener("click",function(){
        closeDiv();
    },false);

</script>
</body>
</html>

首先是定义好[模块],每一个可拖动过来的组件都是一个[模块](解耦),[模块]里最重要的又是[html模板],它定义了html结构和样式;其次是[数据],[数据]就是模板里面的内容,一般页面初始化时会有一个默认数据。在把一个模块拖动过来的时候,就先拿到[html模版],然后和[数据]结合,动态生成html代码,最后显示在页面。

...这可视化太low了,有没好点的参考下

新手上路,请多包涵

你现在会了吗亲,我现在也想学这可,可不知道该从哪里下手学习!希望能指点一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题