【问题标题】:Resizable Modal Popup可调整大小的模式弹出窗口
【发布时间】:2016-03-28 07:29:10
【问题描述】:

我正在尝试通过单击增加和减少图标来调整模式窗口的大小。在每次 increase/decrease 点击后,模态框也应该位于屏幕中间。

到目前为止,只有增加是有效的。谁能解释我做错了什么?

this.increaseModal = function () {
        var maxHeight = ($(window).height() * 90) / 100;
        var maxWidth = ($(window).width() * 90) / 100;
        var height = ($(window).height() * 10) / 100;
        var width = ($(window).width() * 10) / 100;
        if ($('.modal-content').height() <= maxHeight - 100) {
            $('.modal-content').height($('.modal-content').height() + height);
            increaseHeightCount = increaseHeightCount + 1;
        }
        if ($('.modal-content').width() <= maxWidth - 100) {
            $('.modal-content').width($('.modal-content').width() + width);
            increaseWidthCount = increaseWidthCount + 1;
        }
        $('.modal-dialog').draggable();
        $('#myModal').addClass('outPopUp');
    }


this.decreaseModal = function () {
    var maxHeight = ($(window).height() * 90) / 100;
    var maxWidth = ($(window).width() * 90) / 100;
    var height = ($(window).height() * 10) / 100;
    var width = ($(window).width() * 10) / 100;
    if (increaseWidthCount > 0) {
        $('.modal-content').width($('.modal-content').width() - width);
        increaseWidthCount = increaseWidthCount - 1;
    }
    if (increaseHeightCount > 0) {
        $('.popup').height($('.popup').height() - height);
        increaseHeightCount = increaseHeightCount - 1;
    }
}

outPopUp 是我覆盖引导 css 以更改模式窗口位置的类。

据我在 DOM 资源管理器中看到的,.popup 没有分配给元素,因此增加/减少高度不起作用。

【问题讨论】:

  • 你好,增加有效吗?因为在顶部,您说正在工作,但在底部您说不工作。您还可以显示弹出窗口的 html 吗?谢谢!
  • 进一步了解@dsg 所写的内容,请创建一个fiddle 或(甚至更好)在您的问题中添加一个sn-p,以便我们看到问题所在。见how to ask
  • 点击增加图标时,模态宽度正在增加..而不是高度。减少根本不起作用,定位不会改变到屏幕中间。
  • 这是我刚刚创建的小提琴jsfiddle.net/569n1mh4
  • 是我自己还是模态根本无法拖动或调整大小?

标签: jquery html angularjs twitter-bootstrap bootstrap-modal


【解决方案1】:

JQuery 已经具备完成此任务所需的功能。

$('.modal-content').resizable({
    //alsoResize: ".modal-dialog",
    //minHeight: 150
});
$('.modal-dialog').draggable();

$('#myModal').on('show.bs.modal', function () {
    $(this).find('.modal-body').css({
        'max-height':'100%'
    });
});
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>


<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label for="recipient-name" class="control-label">Recipient:</label>
            <input type="text" class="form-control" id="recipient-name">
          </div>
          <div class="form-group">
            <label for="message-text" class="control-label">Message:</label>
            <textarea class="form-control" id="message-text"></textarea>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

https://jsfiddle.net/p7o2mkg4/

【讨论】:

  • 只是为了澄清,这个功能是 jQuery UI 库的一部分。
猜你喜欢
  • 2019-10-22
  • 1970-01-01
  • 2015-07-08
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多