Подсказка jQuery определяет край экрана

У меня есть некоторый базовый код hover/tooltip, который необходимо изменить, чтобы добавить второе имя класса, когда всплывающая подсказка достигает края окна браузера. Кто-нибудь может протянуть руку?

this.tooltip = function () {
    $(".challenge_card").hover(function (e) {
                $(this).parent().append("<div id='tooltip'></div>");
                $("#tooltip")
                        .fadeIn("fast");
            },
            function () {
                $("#tooltip").remove();
            });
};

person geraddavis    schedule 19.11.2012    source источник
comment
@ahren вот как у меня настроен код. ' $(.challenge_card).hover(function (e) { $(this).parent().append(‹div id='tooltip'›‹/div›); $(#tooltip).fadeIn(fast); if ($tooltip.offset().left + $tooltip.outerWidth() › wW) { alert($(window).width()); } }, function () { $(#tooltip).remove(); }); }; jQuery (документ) .ready (функция ($) { всплывающая подсказка (); '   -  person geraddavis    schedule 20.11.2012


Ответы (1)


var wW = $(window).width();
var $tooltip = $('#tooltip');

if($tooltip.offset().left + $tooltip.outerWidth() > wW){
  // You've hit the right side of the browser window
}

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

person ahren    schedule 19.11.2012
comment
Мне трудно заставить ваше решение работать. Единственный способ предотвратить ошибку — поместить оператор if в функцию .hover. Ничего не происходит, когда всплывающая подсказка попадает в правую часть окна. - person geraddavis; 20.11.2012
comment
какую ошибку вы получаете? Я ничего не писал, чтобы изменить его положение, вы просто хотели знать, как определить край экрана... - person ahren; 20.11.2012
comment
Невозможно прочитать свойство «слева» от нуля — это ошибка. Я тестировал с помощью простого предупреждения. - person geraddavis; 20.11.2012
comment
$tooltip должен существовать и быть видимым, чтобы иметь смещение... точнее, не display:none; - person ahren; 20.11.2012
comment
Отвечу в новом комментарии. Делиться в этой ветке становится сложно. - person geraddavis; 20.11.2012