1

私はこのコードで作業しています:

 $('#products h2').click(
        function() {
           $('.well').toggleClass('margin-left260', 100000);
            return false;
        }
    );

私がやりたいことは、左マージンを使用して 260 を超える div をスライドさせ、クリックして 0 に戻すことです。.toggleClass がアニメーション化されない理由がわかりません。

私も以前に .animate(margin-left,'260px); を使用してうまくいきました。しかし、私の人生では、トグルを使用してマージンを0に戻す方法を理解することができました.ここで何が欠けていますか?

4

2 に答える 2

1

ここに jsfiddle の例を追加しました - http://jsfiddle.net/BaXyR/

基本的

$('.clickme').click(function(){
if($('#moveme').hasClass('marginleft260')){
      $('#moveme').animate({
        marginLeft: "-=260px",
      }, 5000, function() {
        $(this).removeClass('marginleft260');
      });    
}else{
      $('#moveme').animate({
        marginLeft: "+=260px",
      }, 5000, function() {
        $(this).addClass('marginleft260');
      });    
}
});
于 2013-09-04T03:02:34.907 に答える
0

toggleClass を使用して、トグルのクラスを追加/削除できます。margin-left260 は CSS のクラスです。

.margin-left260 {
    margin-left:260px;
}

また、コードを見て、toggleClass を正しく実装していないと思います。参照: http://api.jquery.com/toggleClass/

動きをアニメーション化しようとしていますか?

正しいコードはアニメーション機能を使用することだと思います-参照:http://api.jquery.com/animate/

于 2013-09-04T02:33:25.767 に答える