如何为 jQuery UI 中可调整大小的元素设置 diffedert 参数

How to set diffedert parameter for resizable elements in jQuery UI

我使用可拖动和可调整大小的元素,我在页面上有两种类型的框,小的没有图像,大的有图像。

对于这 2 个元素,我在框上有可调整大小的文本,我在用户开始调整元素大小时创建函数,其中文本正在更改,对于大框,它工作正常,对于小框,没有。

我喜欢这里的问题:

 $('.box').resizable({
          minWidth: 50,
          minHeight: 44,
          maxWidth: 205,
          maxHeight: 87,
          resize: function(event, ui) {
            var size = ui.size;
            $(this).children().css('font-size', (size.width * size.height) / 580 + 'px');
            $(this).css('font-size', (size.width * size.height) / 580 + 'px');
          }
        });

对于小盒子我想设置这个参数:

$('.box').resizable({
          minWidth: 20,
          minHeight: 24,
          maxWidth: 100,
          maxHeight: 87,
          resize: function(event, ui) {
            var size = ui.size;
            $(this).children().css('font-size', (size.width * size.height) / 580 + 'px');
            $(this).css('font-size', (size.width * size.height) / 580 + 'px');
          }
        });

如果我为小元素设置了与正常工作不同的参数。我如何为对象设置不同的参数。另外,我在视图中动态创建了对象。

我的代码 - jsFiddle

我在这里处理过你的例子:https://jsfiddle.net/Twisty/czhLjtud/12/

JavaScript

$(function() {
  function calcFont(s) {
    var result = Math.round((s.width * s.height) / 580);
    return result + "px";
  }

  $('.lpms3-box').draggable();

  $('.lpms3-box > .box').resizable({
    minWidth: 50,
    minHeight: 44,
    maxWidth: 205,
    maxHeight: 87,
    resize: function(event, ui) {
      var newFont = calcFont(ui.size);
      console.log(ui.size.width, ui.size.height, (ui.size.width * ui.size.height) / 580, "Set new font: " + newFont);
      $(this).css('font-size', newFont);
    }
  });
});

这似乎对两个盒子都有效。不清楚为什么它对您不起作用。

对于数学,最好在附加任何字符串项之前将所有部分包裹在 () 中。例如:

(size.width * size.height) / 580 + 'px'

此代码有点模棱两可,+ 可能被解读为错误的运算符。我建议这样做:

((size.width * size.height) / 580) + 'px'

这样代码就知道正确的操作,并将使用 + 作为连接运算符而不是加法运算符。