javascript 更改可调整大小的捕捉量

mwg9r5ms  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(120)

使用gridstack,我可以调整我的小部件。但是,当拖动小部件的手柄时,小部件的大小将对齐到特定的大小。这似乎是一个固定的数额。如果我想将小部件的大小设置为介于特定大小之间的一个,我无法做到这一点,因为它会捕捉到特定大小。
有没有什么方法可以改变缩放比例,这样捕捉就可以在更小的时间间隔发生?
对不起,我是个新手,我一直在使用我在codepen上找到的一个演示,https://codepen.io/AKay/pen/GZXEJx,但我无法弄清楚如何做到这一点。
HTML:

<body>
  <section class="darklue" id="demo">
    <div class="container">
      <div class="row">
        <div class="col-lg-12 text-center">
          <h2>Tile drop</h2>
        </div>
      </div>
      <div class="row">
        <div class="col-lg-2 grid-container sidebar-scroll">
          <div class="sidebar grid-stack-1"></div>
        </div>
        <div class="col-lg-10 grid-container">
          <div class="grid-stack grid-stack-4"></div>
        </div>
      </div>
    </div>
  </section>
</body>

CSS:

body {
  background: #2c3e50;
  color: #fff;
}

.sidebar {
/*   background: lightblue; */
  height: 100%;
}

.grid-stack {
/*   background: #66a3ff; */
}

.sidebar-scroll {
  overflow-y: scroll;
}

.grid-container {
  padding-top: 15px;
  padding-bottom: 15px;
  height: 542px;
  background: grey;
}

.sidebar .grid-stack-item {

  text-align: center;
  line-height: 100px;
  z-index: 10;
  cursor: grab;
  display: inline-block;
}

.grid-stack-item-content {
  background: white;
  color: #2c3e50;
  font-family: 'Indie Flower';
  text-align: center;
  font-size: 20px;
}

.grid-stack .grid-stack-item[data-gs-width="4"] {
  width: 100%
}

.grid-stack .grid-stack-item[data-gs-width="3"] {
  width: 75%
}

.grid-stack .grid-stack-item[data-gs-width="2"] {
  width: 50%
}

.grid-stack .grid-stack-item[data-gs-width="1"] {
  width: 25%
}

.grid-stack .grid-stack-item[data-gs-x="3"] {
  left: 75%
}

.grid-stack .grid-stack-item[data-gs-x="2"] {
  left: 50%
}

.grid-stack .grid-stack-item[data-gs-x="1"] {
  left: 25%
}

.sidebar .grid-stack-item[data-gs-width="1"] {
  width: 100%
}

JS:

$(function() {
   var options = {
     float: true,
     width: 4,
     height: 4,
     animate: true,
     always_show_resize_handle: true,
     cellHeight: 110,
     verticalMargin: 18,
     horizontalMargin: 9,
     placeholder_class: 'grid-stack-placeholder',
     acceptWidgets: '.grid-stack-item'
   };

   $('.grid-stack').gridstack(_.defaults(options));

   var items = [{
     x: 0,
     y: 0,
     width: 1,
     height: 1
   }, {
     x: 1,
     y: 0,
     width: 1,
     height: 1
   }, {
     x: 2,
     y: 0,
     width: 1,
     height: 1
   }, {
     x: 0,
     y: 1,
     width: 1,
     height: 1
   }, {
     x: 3,
     y: 1,
     width: 1,
     height: 1
   }, {
     x: 1,
     y: 2,
     width: 1,
     height: 1
   }];

   $('.grid-stack').each(function() {
     var grid = $(this).data('gridstack');

     _.each(items, function(node) {
       grid.addWidget($('<div><div class="grid-stack-item-content" /><div/>'),
         node.x, node.y, node.width, node.height);
     }, this);
   });

   var sidebar_options = {
     float: true,
     width: 1,
     cellHeight: 110,
     verticalMargin: 18,
     horizontalMargin: 9,
     placeholder_class: 'grid-stack-placeholder',
   };

   $('.sidebar').gridstack(_.defaults(sidebar_options));

   var droppables = [{
     x: 0,
     y: 0,
     width: 1,
     height: 1
   }];

   $('.sidebar').each(function() {
     var sidebar = $(this).data('gridstack');

     _.each(droppables, function(node) {
       sidebar.addWidget($('<div><div class="grid-stack-item-content">I\'m new</div></div>'),
         node.x, node.y, node.width, node.height);
     }, this);
   });
 });
gmol1639

gmol16391#

Gridstack使用列系统,默认情况下它有12列,但是通过一些额外的CSS你可以增加这一点。可以在gridstack选项中调整行数。增加行数和列数将允许您捕捉到更多大小。
请参见https://github.com/gridstack/gridstack.js#change-grid-columns和minRow配置选项。

相关问题