|
jquery resize для div (а не только для window)
HELP ME!!!
Есть в JQUERY такая функция - resize: пример её использования: $(window).resize(function(){ alert('Размеры окна браузера изменены.'); }); - т.е если колёсиком изменить размер окна, то выведется сообщение. Как сделать, чтобы тот же эффект получался при изменении размера любого блока, например так: :( $('#blockdiv').resize(function(){ alert('Размеры окна браузера изменены.'); Похоже что resize применим только к элементу window, но наверняка есть способ для применения к другим элементам. Только как? Подскажите, очень горит! |
Погуглить слабо?
http://kurilka.co.ua/archives/jquery-resize-textarea/ |
Serg_pnz, глаза разуй.
Vitaliy88, к сожалению нет такого. И вроде бы и не планируется. Как вариант решения - MutationObserver + MutationEvent (устарел) - с их помощью можно отследить изменение атрибута style. Подходит естественно только когда размеры элемента меняются путем установки style.width и style.height ... |
Йопт...:blink:
|
Vitaliy88, А кто меняет размер блока и почему?
(Возможно проще решать задачу с иного конца ?) Ну или: Таймер
<div id="Test" style="position:relative;border:red solid 1px;width:200px;height:100px;"></div>
<script type="text/javascript">
var width="200px";
var height="100px";
setInterval (function (){
var w=document.getElementById("Test").style.width;
var h=document.getElementById("Test").style.height;
if(h!=height||width!=w){alert('Размеры div #Test изменены.');
width=w;
height=h;
}
},200);
setTimeout(function(){
document.getElementById("Test").style.width='100px';
},3000)
</script>
Можно еще засунуть пустой фрейм с position:absolute
<div id="Test" style="position:relative;border:red solid 1px;width:200px;height:100px;">
<iframe id="frame0" name="frame0" width=100% height=100% style="position:absolute;z-index:-1"></iframe>
Тут контент
</div>
<script type="text/javascript">
frame0.onresize = function(){
alert('Размеры div #Test изменены.');
};
setTimeout(function(){
document.getElementById("Test").style.width='100px';
},3000)
</script>
И отслеживать событие window.onresize внутри фрейма |
Deff, спасибо за идею с iframe - это гениально )
Цитата:
Более того, у элемента может быть указано css-свойство resize: both и тогда изменение размеров может инициировать юзер, а не скрипт. В DOM3 Events спецификации сказано, что браузер может слать это событие не только для defaultView. Вообще, тут налицо пробелы в спецификации, и помоему это никого не волнует. Serg_pnz, какие же мы нежные и ранимые :haha: .. |
Vitaliy88, у Бена Алмана есть решение этого вопроса - посмотрите тут:
http://benalman.com/code/projects/jq...amples/resize/ |
smat, ты опоздал. Deff уже предлагал таймер. Таймер - это самый кривой костыль который можно использовать.
|
Цитата:
Deff пытался решить проблему с другого бока, но это может не подойти в других случаях. А вот решение от Бена Алмана как раз и отвечает на поставленный вопрос. |
К слову в WebKit есть один неприятный глюк. Выражается он в том что при изменении элемента с resize:both юзером (растягивая ресайзер) MutationObserver не реагирует на изменение свойства style (хотя оно изменяется). В других браузерах с этим проблем нет.
|
| Часовой пояс GMT +3, время: 03:49. |
|