【问题标题】:Left Horizontal scroll when <div> is creating at run time in left hand sides<div> 在运行时在左侧创建时向左水平滚动
【发布时间】:2013-08-27 11:40:33
【问题描述】:

我在 jsplumb API 的帮助下制作了一个树形结构。当父级我在 a 中删除一个项目时,jquery 在运行时根据父级 div 的位置创建另外两个 div。

   <div id="win" style="overflow: scroll">
        <div id="rootNode">Drag New item Here</div>
    </div>

拖动一个项目后,两个 div 正在创建

    //getting postion of parent node
        var left= parseInt((document.getElementById("node").style.left).replace("px",""));
        var top= parseInt((document.getElementById("node").style.top).replace("px",""));
    var idValue = //clicked node id which contains "node"
    Left child:     
    $("#win").append("<div id='"+idValue+"1' class='window droppable' style='left:"+(left-150)+"px; top:"+(top+80)+"px'>Drag New item Here</div>");

    Right Child:
    $("#win").append("<div id='"+idValue+"2' class='window droppable' style='left:"+(left+150)+"px; top:"+(top+80)+"px'>Drag New item Here</div>");

所有 div 都在 #win div 内部创建

问题:删除项目后,两个孩子正在创建。 如果右孩子跨越#win div 的宽度,则出现 srcoll。但是如果左子元素跨越#win div 的宽度(在左侧,因为它正在创建当前节点的左侧),那么水平滚动不适用于左子div。左节点正在使用 css.left 的值创建某处。这就是为什么即使使用滚动条也看不到它的原因,我找不到左子节点,因为滚动条从 0 开始而不是从 -value 开始。

【问题讨论】:

  • 不工作是什么意思?出现了吗?如果是,是不是滚动内容?
  • 是的,隐藏win div左侧的不是滚动左侧div。

标签: javascript jquery html jsplumb


【解决方案1】:

如果left-150&lt;0 如下所示,我通过将所有元素向右移动来解决我的问题

    var left= parseInt((document.getElementById(idValue).style.left).replace("px",""));
    //left is clicked element's left css value

    if((left-150)<0){
            var leftShift=0-(left-150);
            $('[id^='+"node" + ']').css("left","+="+leftShift);
            //showTree();
    }

在所有现有和新创建的节点的 css 属性 left 中添加了 150 个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多