如何创建包含可拖动拆分器的响应式 html div 元素?

Posted

技术标签:

【中文标题】如何创建包含可拖动拆分器的响应式 html div 元素?【英文标题】:how can i create a responsive html div element containing draggable splitters? 【发布时间】:2018-09-01 03:20:35 【问题描述】:

我正在尝试使标准页眉/内容/页脚页面正常工作。

<html>
<head>
  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.14/semantic.min.css">
</head>
<body>
  <div class="panel-container" style="display: flex; flex-direction: row; 
      flex-wrap: nowrap; justify-content: flex-start; align-items: stretch; align-content: stretch; width: 100%; border: 1px solid silver; overflow: hidden; touch-action: none;">
    <div class="A" style="flex: 0 0 auto; 
        padding: 10px; min-height: 200px; min-width: 10px; white-space: nowrap; background:#838383; color:white;">
      A
    </div>

    <div class="A-splitter" style="flex: 0 0 auto;
        width: 18px;  
        background: url(https://raw.githubusercontent.com/RickStrahl/jquery-resizable/master/assets/vsizegrip.png) center center no-repeat #535353;
        min-height: 200px;
        cursor: col-resize;">
    </div>

    <div class="D" style="flex: 1 1 auto;
        padding: 10px;
        min-height: 200px;
        min-width: 200px;">
      D
    </div>

    <script>
      window.$ = window.jQuery = require('jquery');
    </script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript" crossorigin="anonymous"></script>
    <script src="https://rawgit.com/RickStrahl/jquery-resizable/master/src/jquery-resizable.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.14/semantic.min.js"></script>
    <script>
      $(".A").resizable(
        handleSelector: ".A-splitter",
        resizeHeight: false,
        onDrag: function(e, $el, newWidth, newHeight, opt) 
          $el.width(newWidth);
          return false;
        
      );
    </script>
</html>

我在内容 div 中有 jquery 分隔符,但似乎无法确保 div D 的最小宽度。

这是迄今为止我最接近的解决方案。如果可以使用 Semantic-UI 干净地完成,将不胜感激。

谢谢!

【问题讨论】:

codepen.io/velociflapter/pen/JLNgYL?editors=1000 暂时不是拦截器。它可以通过 jquery-ui resizable 来完成,但是 Rick Strahl 的小型 jquery-resizable 也可以。 codepen.io/velociflapter/pen/JLNgYL。不确定在 Semantic-UI 布局中是否有一种干净的方法来执行此操作。 【参考方案1】:

你的左边元素必须有position: absolute;

您可以查看此示例:https://codepen.io/osublake/pen/azMONr

【讨论】:

以上是关于如何创建包含可拖动拆分器的响应式 html div 元素?的主要内容,如果未能解决你的问题,请参考以下文章

可选择和可拖动的 jQuery 以创建类似 Windows 资源管理器的窗口

如何使用 Bootstrap 在响应式视图中拆分列?

如何在循环内创建动态 div 添加可拖动()?

如何使 jquery 创建的 div 可拖动?

对于未嵌套的“可拖动”div 标签:JQuery/JavaScript div 标签“包含”方法/算法?

响应式网格忽略了空 div?