0

私はこの状況にあります:

$("#button").toggle(function(){
    $("#window").animate({top:'0%'},1000);
},function(){
    $("#window").animate({top:'-100%'},1000);
});

.clickしかし、次のように、イベントで機能するように変更する必要があります。

$("#button").click(function(){

#window位置がの場合top:'0%'、アニメートするtop:'-100%'

#window位置がの場合top:-100%'、アニメートするtop:'0%'

また、ユーザーがを複数回クリックしても#button、アニメーションが繰り返されない場合

提案してください。

4

2 に答える 2

1

このコードは機能するはずです...

var i = 0;
$("#button").on('click', function(){
    if(i == 0) {
        $("#window").stop().animate({top:'0%'},1000);
        i = 1;
    } else {
        $("#window").stop().animate({top:'-100%'},1000);
        i = 0;
    }

});
于 2012-06-13T19:11:22.103 に答える
1

これは動作するはずです!!

$( "#button")。click(function(){
     if($( "#window")。css('top')== '0%'){
       $( "#window")。stop()。animate({top:'-100%'}、1000);
     };
     if($( "#window")。css('top')=='-100%'){
        $( "#window")。stop()。animate({top: '0%'}、1000);
     };
 });

あなたのcssがこれを持っていることを確認してください:

​#window{
   position: absolute;
   top:0%;   /* -100% as the default case may be */
}​

ここでのフィドルの動作:http://jsfiddle.net/dNPWg/ アニメーションの赤いバーをクリックします(.stop()が動作しているかどうかをよりよく理解するには、-100%を100%に変更します)

于 2012-06-13T19:15:27.297 に答える