Оберните все свои кнопки в <div>
с уникальным id
на ваш выбор. Затем используйте этот фрагмент:
$(window).on('load resize', function(){
$('#myGroup').toggleClass('btn-group-vertical', $(window).width() < 720)
})
... заменив #myGroup
вашим уникальным идентификатором и 720
желаемой шириной, в соответствии с сеточной системой Bootstrap контрольные точки реагирования .
Посмотрите, как это работает:
$(window).on('load resize', function(){
$('#myGroup').toggleClass('btn-group-vertical', $(window).width() < 720)
})
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<div class="container-fluid py-2">
<div class="row text-center">
<div class="col-10 offset-1">
<div id="myGroup" role="group">
<button class="btn btn-primary mr-2 select-all">Select All Items</button>
<button class="btn btn-primary mr-2 unselect-all">Unselect All Items</button>
<button class="btn btn-primary mr-2" id="latencybutton">New Items</button>
<button class="btn btn-primary mr-2 clear-all">Clear All</button>
<button class="btn btn-primary mr-2 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Remove Items</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item select-1" type="button">Items 1</button>
<button class="dropdown-item select-2" type="button">Items 2</button>
<button class="dropdown-item select-3" type="button">Items 3</button>
<button class="dropdown-item select-4" type="button">Items 4</button>
</div>
</div>
</div>
</div>
Фрагмент применяет вертикальное изменение Bootstrap's .btn-group
(.btn-group-vertical
) к оболочке в зависимости от того, является ли ширина окнаменьше указанной ширины.
Проверка выполняется по событиям load
и resize
окна. Если вы хотите использовать это во многих местах, вы можете ограничить его выполнение, так как событие resize
может запускаться очень много раз в секунду.
Это не проблема, если вы используете его только один раз, хотя, в частности,потому что и проверенное условие, и манипуляция с DOM довольно легки.