1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト
  4. javascriptのクラスライブラリ

Vueの要素ツリーコントロールに破線を追加する説明

2022-01-13 19:01:19

1. エフェクトの実装

画像

2. 実装コード

ツリーコントロールのダッシュは主にcssを制御して追加しており、ツリーコントロールのインデントは0しかとれないので、class="mytree"

   <div class="mytree">
          <! --indent can only be 0-->
          <el-tree
              :data="tree_data"
              :props="defaultProps"
              @node-click="handleNodeClick"
              indent="0"
              :render-content="renderContent"
          ></el-tree>
   </div>

cssは、以下のようなコードで ::v-deep スタイル浸透のため

<style lang="scss" scoped>
::v-deep .mytree {
  .el-tree > .el-tree-node:after {
    border-top: none;
  }
  .el-tree-node {
    position: relative;
    padding-left: 16px;
  }
  // the node has a gap, just hide the expand button, if you think the gap is okay you can delete it
  .el-tree-node__expand-icon.is-leaf {
    display: none;
  display: none; }
  .el-tree-node__children {
    padding-left: 16px;
  }
  .el-tree-node :last-child:before {
    height: 38px;
  }
  .el-tree > .el-tree-node:before {
    border-left: none;
  }
  .el-tree > .el-tree-node:after {
    border-top: none;
  }
  .el-tree-node:before {
    content: "";
    left: -4px;
    position: absolute;
    right: auto;
    border-width: 1px;
  }
  .el-tree-node:after {
    content: "";
    left: -4px;
    position: absolute;
    right: auto;
    border-width: 1px;
  }
  .el-tree-node:before {
    border-left: 1px dashed #4386c6;
    bottom: 0px;
    height: 100%;
    top: -26px;
    width: 1px;
  }
  .el-tree-node:after {
    border-top: 1px dashed #4386c6;
    height: 20px;
    top: 12px;
    width: 24px;
  }
}
</style>

3. その他の実装

vueは要素ツリーコントロールでツリーテーブルを実装しています。

Element-uiはアイコン付きツリーコントロールノードを実装しています。

概要

この記事はこれで終わりです。この記事があなたの助けになることを願っていますし、BinaryDevelopの他のコンテンツにももっと注目していただければと思います