如果我把图像放大,它就会向右。下面是我的js函数。当我缩放图像时,背景的实际宽度和高度是恒定的,只有背景的大小应该是动态的。这就是为什么它看起来像如果它放大它会去右边而不是在中心。我想要的是当我缩放图像时,它会向前缩放到图像的中心。

function zooms(zoomType) {
    switch(zoomType) {
        case '+':
            newW += 10;
            break;
        case '-':
            newW -= 10;
            break
    }

    if(newW <= 0) {
        newW = 0;
    } else {
        if(newW >= 100) {
            newW = 100;
        }
    }
    return newW;
}

function backgroundAdjust(num, el) {
    wid = (parseInt(num)+parseInt(el.width()));
    el.css({
        'background-size': wid + 'px auto'
    });
    return;
}

$('input.zoomButton').click(function() {
    zoomType = $(this).val();
    zoomNum = zooms(zoomType);
    backgroundAdjust(zoomNum, $('#uploadImage'));
});

最佳答案

如果您的图像是正方形的,则应该这样做:它会偏移背景图像,使其中心保持在包含元素的中心。

var posx = (el.width()-wid)/2;
var posy = (el.height()-wid)/2;
el.css({
        'background-size': wid + 'px auto',
        'background-position': posx +'px ' +posy +'px'
    });

10-07 17:46