Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Событие onresize не срабатывает
 
 автор: vadval15   (14.11.2015 в 15:03)   письмо автору
 
 

На сайте http://help.dottoro.com/ljorlllt.php описывается событие onresize и даются примеры его использования. При попытке запуска указанных примеров в ОС ALT Linux 6.0 Centaurus (браузерах Firefox 17.0.11, Opera 12.15, Epiphany 2.30.6, Google Chrome 21.0.1180.89) размещённые в них события срабатывают, кроме onresize: в этом случае совершенно ничего не происходит. Правда, в первом примере в браузерах Epiphany и Google Chrome всплывающее окно всё-таки появляется, но только при загрузке окна, а не при удалении элемента. Чем объяснить отсутствие реакции на это событие - мне пока неизвестно. Буду признателен за любой совет по решению данной проблемы.

  Ответить  
 
 автор: Deed   (15.11.2015 в 13:15)   письмо автору
 
   для: vadval15   (14.11.2015 в 15:03)
 

Думаю, перед выводом сообщения, нужно добавить небольшой setTimeout, чтобы дать понять JS, что событие нужно инициировать после изменения параметров окна.

  Ответить  
 
 автор: vadval15   (16.11.2015 в 12:41)   письмо автору
 
   для: Deed   (15.11.2015 в 13:15)
 

Спасибо за ответ. К сожалению, событие onresize и в этом случае не подаёт никаких признаков жизни.

  Ответить  
 
 автор: vadval15   (16.11.2015 в 18:09)   письмо автору
 
   для: Deed   (15.11.2015 в 13:15)
 

Решение описанной проблемы размещено на сайте http://habrahabr.ru/post/166321/
В соответствии с ним преобразованный код будет выглядеть следующим образом:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Onresize</title>
    <script type="text/javascript">
        function UpdateCoords(){
            var posX=document.getElementById("posX");
            var posY=document.getElementById("posY");
            posX.innerHTML=document.getElementById("dv").offsetWidth;
            posY.innerHTML=document.getElementById("dv").offsetHeight;
        }
        function fi(){
   setTimeout(function(){
   fr.onresize=function(){
     setTimeout(UpdateCoords,20)}
   },200);
        }
    </script>
</head>
<body onload="fi()">
    Select and resize the blue element with your mouse!
    <div contenteditable="true" style="border:1px solid #000000; height:220px;">
        <div id="dv" style="position: absolute; top: 30px; left: 10px; width: 200px; height: 100px; background-color: blue;">
         <iframe name="fr" id="fr" width=100% height=100% style="position: absolute; z-index: -1;" frameborder=0></iframe>
        </div>
    </div>
    <br>
    <button id="bt" style="position: absolute; top: 390px; left: 10px; width: 100px; height: 40px;" onclick="if (document.getElementById('dv').style.height=='100px'){document.getElementById('dv').style.height='200px'} else {document.getElementById('dv').style.height='100px';}">Change</button>
    <br>
    The size of the blue element:<br>
    width: <span id="posX" style="color: red"></span><br>
    height: <span id="posY" style="color: red"></span>
</body>
</html>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования