Изменение размера iFrame с помощью jQuery UI - PullRequest
15 голосов
/ 05 августа 2009

У меня есть этот код, и он отлично работает:

Руководитель

    <script>
    $(document).ready(function()
    {
        $("#test").resizable({minHeight: 50, minWidth: 50});
    });
</script>

Body

<div id="test" style="border: .1em solid black;">
</div>

Однако, когда я изменяю свой "div" на "iframe", я больше не могу изменить его размер.

Body

<iframe id="test" style="border: .1em solid black;">
</iframe>

Ответы [ 4 ]

15 голосов
/ 02 июня 2011

Обнаружил, что демонстрация redsquare немного шаткая при перемещении мыши более чем на несколько пикселей за раз. Я применил пару модификаций, которые помогают сделать изменение размеров более плавным:

<html>
<head>
  <style type="text/css"> 
    #resizable { width: 150px; height: 150px; padding: 0.5em; }
    #resizable h3 { text-align: center; margin: 0; }
    .ui-resizable-helper { border: 75px solid #EFEFEF; margin: -75px; }
  </style> 
  <script type="text/javascript"> 
    $(function() {
      $("#resizable").resizable({
        helper: "ui-resizable-helper"
      });
    });
  </script> 
</head> 
<body> 
  <div class="demo"> 
    <div id="resizable" class="ui-widget-content"> 
      <iframe src="http://pastebin.me/f9ed9b9d36d17a7987e9cb670e01f0e2" class="ui-widget-content" frameborder="no" id="test" width="100%" height="100%" />
    </div> 
  <div>
</body>
</html>

Кажется, что происходит странное изменение размера, потому что события перемещения мыши не всплывают изнутри iframe. Использование обработчика изменения размера и большой границы в обработчике CSS сводит к минимуму эффект, вызываемый iframe, до тех пор, пока браузер может справиться с событиями mousemove.

8 голосов
/ 08 августа 2013

Ниже кода Работай для меня плавно.

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Resizable - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

  <style>

  #iframe {
  width: 100%;
  height: 100%;
  border: none;    

  background: #eee ;


  z-index: 1;
}

#resizable {
  width: 100px;
  height: 100px;
  background: #fff;
  border: 1px solid #ccc;


  z-index: 9;
}
  </style>
  <script>
  $(function() {
    $('#resizable').resizable({
      start: function(event, ui) {
        $('iframe').css('pointer-events','none');
         },
    stop: function(event, ui) {
        $('iframe').css('pointer-events','auto');
      }
  });
  });
  </script>
</head>
<body>

<div id="resizable">
  <iframe src="test.html" id="iframe">

</div>


</body>
</html>
1 голос
/ 26 марта 2012

Я думаю, это может быть то, что вы ищете: поместите содержимое того, что есть в вашем iframe, в div. Для этого примера я дам div идентификатор id «контейнера».

$('#ID_iframe').css("height", "" + $('#ID_iframe').contents().find("#container").height() + "px");
0 голосов
/ 01 марта 2016

Я попал сюда для поиска в Resize iframe, но этот вопрос касается изменения размера с помощью плагина пользовательского интерфейса Jquery, я просто добавляю ответ, чтобы в будущем он мог оказаться полезным для тех, кто попадет на эту страницу в поисках изменения размера iframe. Это можно сделать, используя только CSS

iframe {
  height: 300px;
  width: 300px;
  resize: both;
  overflow: auto;
}

Также все основные браузеры имеют хорошую поддержку. Проверьте эту ссылку , а также о поддержке браузера

...