Сделайте что-нибудь, если позиция меньше X. Jquery - PullRequest
0 голосов
/ 19 августа 2011
$("#rightControl").click(function(){
    $("#thumb_menu").animate({"left": "-=520px"}, "slow");
    var pos = $('#thumb_menu').position();
    if(pos.left < 0) { 
        $('#header')
            .prepend('<span class="control" id="leftControl">Move left</span>')
}
});

Нажатие #rightControl один раз перемещает #thumb_menu в -450 пикселей влево, поэтому if должен работать, но я не могу заставить его работать.

Куда я иду не так?

Ответы [ 2 ]

2 голосов
/ 19 августа 2011

Поместите его в функцию обратного вызова к .animate(), чтобы у него была возможность изменить свою позицию до вызова метода .position().отрицательная позиция, я не думаю, что вам вообще понадобится оператор if().Просто сделайте .prepend() в обратном вызове.

0 голосов
/ 19 августа 2011

Метод позиционирования относится к документу, а не к исходной позиции элемента: http://api.jquery.com/position/

Таким образом, .position() будет иметь значение < 0, только если элемент фактически находится за пределами экрана.Что вам нужно сделать, это зафиксировать исходное положение элемента, прежде чем перемещать его, а затем посмотреть, меньше ли это.

...