1. ホーム
  2. javascript

[解決済み] Twitter Bootstrapのツリー [終了しました]。

2022-10-06 20:32:48

質問

なるべくCSSを使い、JSを使わない(stateなどだけ)ツリー(ディレクトリツリーのようなもの)を作る作業をしようとしているのですが、既存のツリープラグインで良いものがあれば教えてください。 ブートストラップ または jquery-ui ブートストラップ .


参考までに、またはこの質問で混乱している人のために、私は次のようなものを探しています。 dynatree のようなものを探しています。

どのように解決するのですか?

構築する VitaliyのCSS Mehmet の jQuery を変更しました。 a タグを span タグに変更し、いくつかの グリフィコン バッジング Bootstrap のツリーウィジェットを使ってみました。 .

例です。

余分なクレジットとして、私は GitHub プロジェクトを作成し、このツリーコンポーネントを追加するための jQuery と LESS のコードをホスティングしています。 をBootstrapに追加するためのjQueryとLESSのコードをホストするGitHubプロジェクトです。プロジェクトのドキュメントは http://jhfrench.github.io/bootstrap-tree/docs/example.html .

代わりに、このCSSを生成するためのLESSのソースを以下に示します(JSは jsFiddle ):

@import "../../../external/bootstrap/less/bootstrap.less"; /* substitute your path to the bootstrap.less file */
@import "../../../external/bootstrap/less/responsive.less"; /* optional; substitute your path to the responsive.less file */

/* collapsable tree */
.tree {
    .border-radius(@baseBorderRadius);
    .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
    background-color: lighten(@grayLighter, 5%);
    border: 1px solid @grayLight;
    margin-bottom: 10px;
    max-height: 300px;
    min-height: 20px;
    overflow-y: auto;
    padding: 19px;
    a {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        width: 90%;
    }
    li {
        list-style-type: none;
        margin: 0px 0;
        padding: 4px 0px 0px 2px;
        position: relative;
        &::before, &::after {
            content: '';
            left: -20px;
            position: absolute;
            right: auto;
        }
        &::before {
            border-left: 1px solid @grayLight;
            bottom: 50px;
            height: 100%;
            top: 0;
            width: 1px;
        }
        &::after {
            border-top: 1px solid @grayLight;
            height: 20px;
            top: 13px;
            width: 23px;
        }
        span {
            -moz-border-radius: 5px;
            -webkit-border-radius: 5px;
            border: 1px solid @grayLight;
            border-radius: 5px;
            display: inline-block;
            line-height: 14px;
            padding: 2px 4px;
            text-decoration: none;
        }
        &.parent_li > span {
            cursor: pointer;
            /*Time for some hover effects*/
            &:hover, &:hover+ul li span {
                background: @grayLighter;
                border: 1px solid @gray;
                color: #000;
            }
        }
        /*Remove connectors after last child*/
        &:last-child::before {
            height: 30px;
        }
    }
    /*Remove connectors before root*/
    > ul > li::before, > ul > li::after {
        border: 0;
    }
}