-1

嗯,我有这个漂亮的小网站,它有一个 div,overflows:hidden其中的内容不适合包装器。我想margin-top: $value-120px每次点击一个 span 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
    });
});
});

它实际上完成了这项工作。它得到margin-top,增加它的int值+120px,在它之前放一个-,所以,向上滑动div。真正的问题是它只发生一次。.maisfilme如果我再次单击,则没有任何反应。
有人可以知道我应该怎么做,每次.maisfilme点击该功能都会起作用吗?

4

1 回答 1

0

您第二次执行此操作时,它将是 -(-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 回答