Вопрос

Мне нужно заблокировать полосы прокрутки браузера, когда я показываю div, которые представляют модальное окно только в Internet Explorer 7.Погуглив, я нашел, что могу использовать document.body.style.overflow='hidden' но это не работает для IE7.Я также пробовал с document.body.scroll="no" который работает, но только после того, как я наведу курсор мыши на полосу прокрутки:-S

Кто-нибудь знает лучший подход?

Тански

Это было полезно?

Решение

Отвечая на ваши различные вопросы (в том числе и в вашем другом комментарии), я думаю, что вы используете неправильный метод позиционирования.

Попробуй position:fixed.Это в основном то же самое, что position:absolute помимо того, что это относительно абсолютного окна просмотра.Ie:если пользователь прокручивает страницу, элемент остается на том же месте экрана.

Итак, имея это в виду, вы можете изложить position:fixed наложение.В пределах этого вы можете иметь свой position:absolute (или fixed опять же, если вы предпочитаете - это не должен измени ситуацию) модальное поле.

Другие советы

Настройте свой модальный оверлейный div так, чтобы он заполнял тело, поэтому, даже если они прокручивают, они ничего не могут сделать, потому что все скрыто под ним.

вы также можете скрыть полосы прокрутки с помощью overflow:hidden таким образом, пользователь не увидит scollbars, поэтому у него не возникнет соблазна пошалить :)

Это может помочь вам:

documentOBJ = {
    /*Width and Height of the avaible viewport, what you'r seeing*/
    window : {
        x : function(){return (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth; },
        y : function(){return (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;}
    },

    /*Scroll offset*/ 
    scroll : {
        x : function(){return ( document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft; },
        y : function(){return ( document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop; }
    },

    /*Height and width of the total of the xhtml in a page*/
    page : {
        x : function(){return (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth; },
        y : function(){return (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight; }
    },
    pointer : {}
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top