-1

overflows:hiddenさて、私はこの美しい小さなサイトを持っています。このサイトには、ラッパーに適合しないコンテンツのdivがあります。margin-top: $value-120pxスパンをクリックするたびにやりたいですclass'd .maisfilme。これは私が得たものです

    $(document).ready(function (){
$(".maisfilme").on("click", function() {
     var $mtop = $(this).css('margin-top');

        var $vai = (parseInt($mtop)+ 110 + "px");
    $("#filme").css ({
        'margin-top' : "-"+$vai
    });
});
});

それは実際に仕事をします。マージントップを取得し、int値を+ 120px増やし、その前に-を付けるなどして、divを上にスライドさせます。本当の問題は、それが一度だけ起こるということです。.maisfilmeもう一度クリックしても何も起こりません。クリック
されるたびに関数が機能するようにするにはどうすればよいか誰かに教えてもらえますか?.maisfilme

4

1 に答える 1

0

2回目に行うと、-(-110 + 110)になりますが、これは希望どおりに大きさを増すことはありません。毎回ネガティブにしたい場合は、サインのロジックを変更する必要があります。

さらに、からcssをフェッチしていますが、それらが同じオブジェクトでない限り、毎回上がることがないように$(this)設定しています。$("#filme")クリックするたびに蓄積するには、それらが同じである必要があります。

毎回ネガティブにするために、次のようにすることができます。

$(document).ready(function (){
    $(".maisfilme").on("click", function() {
        var $mtop = $(this).css('margin-top');

        var $vai = (parseInt($mtop) - 110) + "px";
        $(this).css ({
            'margin-top' : $vai
        });
    });
});

または、margin-topの初期値がゼロでない場合にわずかに異なる結果をもたらすわずかに異なるバージョン(最初の反復の場合と同様):

$(document).ready(function (){
    $(".maisfilme").on("click", function() {
        var $mtop = $(this).css('margin-top');

        var $vai = (-(Math.abs(parseInt($mtop)) + 110)) + "px";
        $(this).css ({
            'margin-top' : $vai
        });
    });
});
于 2012-08-05T06:02:32.207 に答える