Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Event resize ( window ) (https://javascript.ru/forum/project/29019-event-resize-window.html)

vitaly777 11.06.2012 15:21

Event resize ( window )
 
Здравствуйте!

Задача у меня такая, при изменении размера окна, нужно изменять
размер картинки (с определёнными условиями). ( средствами CSS не получилось ).

Как-то я это решил ( на IE9, Mozilla, Opera, Chrome работает )
А вот на IE8 подвисает.
Может по другому надо обрабатывать это событие ?

функция:
function resize()
    {
        if ( typeof( elDiv ) == 'undefined' )
            var elDiv = document.getElementById('resolution');
        if ( typeof( elImg ) == 'undefined' )
            var elImg = document.getElementById('img_bg');
        
        if ( window.innerHeight )
        {
            var scrHeight = window.innerHeight;
            var scrWidth = window.innerWidth;
        }
        else
        {
            var scrHeight = document.documentElement.offsetHeight;
            var scrWidth = document.documentElement.offsetWidth;
        }
        var imgHeight = elImg.offsetHeight;
        var imgWidth = elImg.offsetWidth;
            
        var xH = scrHeight - imgHeight;
        var xW = scrWidth - imgWidth;
        
        if ( xH >= 50 && xW <= 0 )
            elImg.style.width = '100%';
        else
            elImg.style.width = ( scrHeight - 50 ) * 2 + 'px';
            
        //elDiv.innerHTML = 'W:' + xW + ' H:' + xH;
        //elDiv.innerHTML = 'browser screen W:' + scrWidth + ' H:' + scrHeight + '<br />' + 'div size W:' + imgWidth + ' H:' + imgHeight;
    }


обработка события:
if ( document.all )
            window.attachEvent('onresize', function(){resize();});
        else
            window.addEventListener('resize', function(){resize();} , false );



Буду рад любому совету!

спасибо.

Deff 11.06.2012 15:42

...

devote 11.06.2012 15:47

Цитата:

Сообщение от Deff
Кроссбраузерный - resize элемента

и в чем же он ресайз элемента?
тут ты сажаешь обрабаотчик на элемент:
document.getElementById('resize').onclick
а вот тут:
= onresize  =
уже на window.onresize, то есть просто одна функция висит на window.onresize и на элементе клика. В чем же тут перехват изменения размера? И причем тут клик вообще? И как твой пример вообще иллюстрирует событие onresize?

Deff 11.06.2012 16:09

devote,
Похоже Ти прав - я соврал

vitaly777 11.06.2012 21:45

ээ.. я что-то пропустил тут ? :)

так как в принципе.. ? нормальное решение или что-то надо переделать ?

Dmitrij01 13.03.2018 10:23

А если картинку поставить как фоновое изображение?


Часовой пояс GMT +3, время: 15:52.