UNPKG

light-vue-tree

Version:

* Support drag, check, multiple check, bigData virtual scroll, lazy load, checkStrictly, add and delete node, etc.

172 lines (171 loc) 3.31 kB
.transition-drop-enter-active { animation-duration: 0.3s; animation-fill-mode: both; animation-play-state: paused; } .transition-drop-leave-active { animation-duration: 0.3s; animation-fill-mode: both; animation-play-state: paused; } .transition-drop-enter-active { animation-name: shTransitionDropIn; animation-play-state: running; } .transition-drop-leave-active { animation-name: shTransitionDropOut; animation-play-state: running; } .transition-drop-enter-active { animation-timing-function: ease-in-out; } .transition-drop-leave-active { animation-timing-function: ease-in-out; } @keyframes shTransitionDropIn { 0% { opacity: 0; transform: scaleY(0.8); } 100% { opacity: 1; transform: scaleY(1); } } @keyframes shTransitionDropOut { 0% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0; transform: scaleY(0.8); } } .transform { transform-origin: center; transition: 0.2s; } .rotate90-enter { transform: rotate(90deg); transform-origin: center; transition: 0.2s; } .rotate90-leave { transform: rotate(0deg); transform-origin: center; transition: 0.2s; } .transform { transform-origin: center; transition: 0.2s; } .rotate180-enter { transform: rotate(180deg); transform-origin: center; transition: 0.2s; } .rotate180-leave { transform: rotate(0deg); transform-origin: center; transition: 0.2s; } .vue-tree { user-select: none; position: relative; } .vue-tree .drop-indicator { position: absolute; left: 0; right: 0; height: 1px; background-color: #409eff; } .vue-tree .child-node { padding-left: 22px; line-height: 28px; cursor: pointer; } .vue-tree .child-node .node-content { width: 100%; position: relative; display: flex; align-items: center; padding-left: 22px; } .vue-tree .child-node .node-content .icon { position: absolute; display: inline-block; left: 0px; font-size: 12px; } .vue-tree .child-node .node-content .icon-expand { color: #1F2E4D; } .vue-tree .child-node .node-content .icon-unexpand { color: #b7beca; } .vue-tree .child-node .node-content .inner-wrap { padding-left: 2px; display: flex; align-items: center; border-radius: 3px; border: 1px solid transparent; } .vue-tree .child-node .node-content .drop-wrap { border-color: #409eff; } .vue-tree .child-node .node-content .drop-inner { border-bottom: 1px solid #409eff; } .vue-tree .child-node .active-li .inner-wrap { background: #F1F3F5; } .vue-tree .child-node .inset { cursor: move; } .vue-tree .child-node .disabled { cursor: no-drop; } .vue-tree .add-node { cursor: pointer; } .vue-tree .is-drop-inner > .node-content > .inner-wrap > .node-name { background-color: #409eff; color: #fff; } .vue-checkbox { position: relative; width: 13px; height: 13px; } .vue-checkbox-input { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 3; margin: 0; background: transparent; } .vue-checkbox-indeterminate { box-sizing: border-box; position: absolute; width: 100%; height: 100%; left: 0; top: 0; background: #0075ff; z-index: 4; border-radius: 3px; } .vue-checkbox-indeterminate:after { position: absolute; content: ''; width: 100%; height: 2px; background: #fff; top: 50%; left: 0; }