Показать сообщение отдельно
  #2 (permalink)  
Старый 09.10.2019, 16:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

columnlist jquery
ozoro,
вариант, если вложенные не надо "дробить" ...
<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>jQuery Column Lists</title>
        <meta name="description" content="">

<style>
    .column-list-js{ width:100%;position:relative;padding: 0 10px;border:1px solid #000;}
    .column-list{ display: inline-block;width:50%;}
    .column-listxxx-1{position:absolute;top:0}
    .column-list li{ margin:15px 0}
    .column-list-js li ul { margin-left: -25px;}

</style>
    </head>
    <body>
        <h1>jQuery Column Lists</h1>


        <h2>Колонки</h2>
        <ul class="column-list-js">
            <li>Пункт #1</li>
            <li>Пункт #2</li>
            <li>Пункт #3

            <ul>
                <li>Пункт #3.1</li>
                <li>Пункт #3.2</li>
                <li>Пункт #3.3</li>
                <li>Пункт #3.4</li>
                <li>Пункт #3.5</li>
                <li>Пункт #3.6</li>
                <li>Пункт #3.7</li>
                <li>Пункт #3.8</li>
                <li>Пункт #3.9</li>
            </ul>

            </li>
            <li>Пункт #4

            <ul>
                <li>Пункт #4.1</li>
                <li>Пункт #4.2</li>
                <li>Пункт #4.3</li>

            </ul>

            </li>
            <li>Пункт #5</li>
            <li>Пункт #6</li>


            <li>Пункт #7
            <ul>
                <li>Пункт #7.1</li>
                <li>Пункт #7.2</li>
                <li>Пункт #7.3</li>
                <li>Пункт #7.4</li>
                <li>Пункт #7.5</li>
                <li>Пункт #7.6</li>

            </ul>
            </li>
            <li>Пункт #8</li>
            <li>Пункт #9</li>
            <li>Пункт #10</li>
            <li>Пункт #11</li>
            <li>Пункт #12</li>
            <li>Пункт #13</li>

        </ul>



<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<script>
// jquery.columnlist.js
// @weblinc, @jsantell (c) 2012

;(function( $ ) {
        $.fn.columnlist = function ( options ) {
                options = $.extend( {}, $.fn.columnlist.defaults, options );

                return this.each(function () {
                        var
                            $list     = $( this ),
                            size      = options.size || $list.data( 'columnList' ) || 1,
                            $children = $list.children( 'li' ),
                            lis = $list.find( 'li' ),
                            perColumn = Math.ceil( lis.length / size ),
                            $column,
                            k = 0;
                        for (var i = 0; i < size; i++) {
                                $column = $('<ul />').appendTo( returnColumn( i ) );
                                for ( var j = 0; j < perColumn; j++ ) {
                                        var children = $children.eq(k);
                                        var len = children.find('li').length
                                        if ( k < lis.length && j + len <  perColumn) {
                                                $column.append(children);
                                                k++;
                                                j += len;
                                        }
                                }
                                $list.append( $column.parent() );
                        }
                });

                function returnColumn ( inc ) {
                        return $('<li class="' + options.incrementClass + inc + ' ' + options[ 'class' ] + '"></li>');
                }
        };

        $.fn.columnlist.defaults = {
                'class'        : 'column-list',
                incrementClass : 'column-list-'
        };

})( jQuery );


// настройки
        $('ul.column-list-js').columnlist({
                size : 2,
                'class' : 'column-list',
                incrementClass : 'column-listxxx-'
        });

        </script>
    </body>
</html>
Ответить с цитированием