Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
264 views
in Technique[技术] by (71.8m points)

javascript - jQuery - Minus percentage from CSS pixel value

I'm trying to get a bunch of background-position-y values from a number of elements and minus a percentage from the pixel value and then assign that new value to each element. E.g. Minus 30% of 40px = 28px. My code below is not working as expected.

var jq = jQuery;
var icon = jq('#weather i');
jq(icon).each(function(){
    var bgPosX = jq(this).css('background-position-x');
    var bgPosY = jq(this).css('background-position-y');
    var bgPosYNew = bgPosY - 30%;
    jq(this).css({
        'background-position-x' : bgPosX,
        'background-position-y' : bgPosYNew
    });
});
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try the shortz:

jq(this).css('background-position-x','-=30%');

or as Klaus said:

jq(this).css('background-position-x','*=.7');

If you go DRY try this:

jQuery(this).css({backgroundPositionX:'*=.7', backgroundPositionY:'*=.7'});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...