Как я останавливаю анимацию jQuery на основе значений CSS?

Так, у меня есть два отделения: #div1 и #div2. Я хочу, чтобы '#div2' исчез, когда '#div1' имеет значение CSS: вершина = 0px.

Вот CSS:

#div1 {
    top: 0px;
}
#div2 {
    display: block;
} 
if ( $('#div1').css('top') == '0px' ) {
    $("#div2").hide();
} else {
    $("div2").fadeIn();
}
$("div2").click(function(){
        $("#div1").animate({top:"+=315px"}, "slow");
});

Проблема, с которой я сталкиваюсь, состоит в том, что я изменяю то значение CSS (для #div1) с помощью JavaScript и поэтому, мой js не подтверждает изменения и не заставляет отделение исчезнуть (я думаю). Там какой-либо путь состоит в том, чтобы заставить #div2 исчезнуть, когда вершина свойства CSS #div1 = 0 и вновь появляется каждый раз, когда это изменяется? Или есть ли лучший способ реализовать это?

5
задан kevn 31 May 2010 в 18:08
поделиться

3 ответа

вместо того, чтобы использовать этот метод .position ()

<script>
var p = $("#div1");
var position = p.position();
alert( "left: " + position.left + ", top: " + position.top );
</script>

, подробнее об этом: http://api.jquery.com/position/

3
ответ дан 14 December 2019 в 19:03
поделиться

Попробуйте это для функции щелчка:

$("div2").click(function(){

        $("#div1").parent().css({postion,"relative"});

        $("#div1").css({postion,"absolute"});

        $("#div1").animate({top:"+=315px"}, "slow");
});

для отражения правильного позиционирования # div1 должен иметь абсолютное положение, а родительский элемент # div1 должен иметь относительное положение.

1
ответ дан 14 December 2019 в 19:03
поделиться

Просто используйте обратные вызовы

#div1 {
    top: 0px;
}
#div2 {
    display: block;
}

$("div2").click(function(){
        $("#div1").animate({top:"+=315px"}, "slow", function(){
             if($('#div1').position().top < 1){
                  $('#div1').hide();
             }else{
                  $('#div1').fadeIn('slow');
             }
        });
});
1
ответ дан 14 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: