简体   繁体   中英

How can I increase a CSS property's value repeatedly on click?

I want to add (in this case, decrease, technically) the value of an element each time a different element is clicked. What I have so far:

$("#trigger_heritage").click(function () {
  $(".heritage_content ul").css("margin-left", + -880);
  // So each time clicking shall move the .heritage_content ul-element 880px further left
});

It gets 880px far left, but only once. What I want is that this value gets increased each time the other element gets clicked.

How would I do that?

You can provide a string in the format -=[value] to the css() method which you can use to amend the current value. Try this:

$("#trigger_heritage").click(function () {
    $(".heritage_content ul").css("margin-left", '-=880');
});

Working example

设置一个变量,例如$marginLeft ,并在每次调用该函数时将其递增,然后设置margin-left:$marginLeft ...。

Here is a simple example:

$(document).ready(function() {
    var move = 0;
    $(".left").click(function () {
        move -= 25;
        $(".move").css("margin-left", move + "px");
    });
    $(".right").click(function () {
        move += 25;
        $(".move").css("margin-left", move + "px");
    });
})

Fiddle: https://jsfiddle.net/gjfjahjo/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM