Изменение размера iFrame с помощью jQuery UI
У меня есть этот код, и он отлично работает:
Глава
<script>
$(document).ready(function()
{
$("#test").resizable({minHeight: 50, minWidth: 50});
});
</script>
Тело
<div id="test" style="border: .1em solid black;">
</div>
Однако, когда я меняю свой "div" на "iframe", я больше не могу его изменять.
Тело
<iframe id="test" style="border: .1em solid black;">
</iframe>
Ответы
Ответ 1
Найденный redsquare demo немного выигрышный при перемещении мыши более чем на несколько пикселей за раз. Я применил несколько модификаций, которые помогают сделать изображение более плавным:
<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>
Странность изменения размера, похоже, происходит потому, что события mousemove не выходят изнутри iframe. Использование обработчика изменения размера и большой границы в обработчике CSS минимизирует эффект, вызванный iframe, если браузер не отстает от событий mousemove.
Ответ 2
Ниже код Работайте для меня плавно.
<!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>
Ответ 3
Я думаю, что это может быть то, что вы ищете: поместите содержимое того, что находится в вашем iframe в div. В этом примере я дам div id из "контейнера".
$('#ID_iframe').css("height", "" + $('#ID_iframe').contents().find("#container").height() + "px");
Ответ 4
Я приземлился здесь для поиска Resize iframe
. Но этот вопрос касается изменения размера с использованием JQuery UI plugin, я просто добавляю ответ, поэтому он может быть полезен для кого-то в будущем, который попадает на эту страницу, чтобы изменить размер iframe.
Это можно сделать, используя только CSS
iframe {
height: 300px;
width: 300px;
resize: both;
overflow: auto;
}
Также у всех основных браузеров есть хорошая поддержка. Проверьте эту ссылку, а также о браузере