JSFiddle - React, Tailwind, and code Playground
by 亮 薛
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<title>Bootstrap 可拖动分栏布局</title>
</head>
<body>
<div class="container">
<div class="row resizable">
<!-- 左栏 -->
<div class="col-md-6 left-pane">
<h2>左栏内容</h2>
<p>这里可以放置左栏的具体内容,比如文本、图片、列表等。</p>
</div>
<div class="resizer"></div>
<!-- 右栏 -->
<div class="col-md-6 right-pane">
<h2>右栏内容</h2>
<p>右栏可以有不同的信息展示,与左栏形成对比或补充。</p>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
CSS
.resizable {
overflow: hidden;
}
.resizer {
cursor: ew-resize;
width: 5px;
background-color: #ddd;
position: absolute;
}
JavaScript
$(document).ready(function () {
let isResizing = false;
let startX;
let startWidth;
$('.resizer').mousedown(function (e) {
isResizing = true;
startX = e.pageX;
startWidth = $('.left-pane').width();
return false;
});
$(document).mousemove(function (e) {
if (isResizing) {
const diffX = e.pageX - startX;
$('.left-pane').width(startWidth + diffX);
$('.right-pane').width($('.row').width() - $('.left-pane').width() - 5);
}
});
$(document).mouseup(function () {
isResizing = false;
});
});