Как определить, находится ли popup div вне браузера - PullRequest
1 голос
/ 11 января 2012

У меня много всплывающих окон, которые мне нужно разместить повсюду на странице.

Мне нужно определить, выходит ли мое открытое всплывающее окно за пределы экрана браузера.Если это так, поменяйте местами.Например, по умолчанию во всплывающем окне используется абсолютное позиционирование с top:31px и left:5px.Поэтому, если всплывающее окно выходит за пределы экрана, оно должно инвертировать «влево» в «вправо», чтобы оно оставалось в браузере.

Вот демонстрация: http://jsfiddle.net/aspirinemaga/ejyRR/12/

Я уверен, что здесь уже должен быть дан ответ, но я не могу его найти.Может быть, кто-то может отправить мне ссылку на уже решенную проблему.Спасибо

1 Ответ

2 голосов
/ 11 января 2012

Я не эксперт по JQuery, поэтому, вероятно, будет более понятный способ сделать это, но вы можете проверить, больше ли offset элемента плюс его width, чем ширина окна:

var x2 = ($this).offset().left + ($this).width()
if( x2 > $(window).width() ){
    //change left to right
}

Редактировать

Чтобы вставить его в пример кода, который вы предоставили в JSFiddle, вы можете сделать следующее:

// Setting correct position for dialog
$(param).children('.gui-selectbox-dialog').each(function(index) {
    var x2 = $(this).offset().left + $(this).width();
    var side = (x2 > $(window).width() ) ? "right" : "left";
    $(this).css({
        'top':    heightBtn,
        side:    '0px'
    });
});

Имейте в виду, что это не будет работать в JSFiddle, потому что он использует длину окна вашего браузера, а не длину view div в JSFiddle.

...