为了设置元素的边距,我想计算浏览器调整大小前后的大小差。我将如何在resize函数外部访问resizeW变量,或在resize函数内部使用startW而不更改它。



var startW = $('li').width(); // width before resize
$(window).resize(function() {
    var resizeW = $('li').width(); // width after resize
    var diff = (startW - resizeW); // startW and resizeW are the same
} );
$('li').css('margin-left',(startW - resizeW)); // resizeW is not defined


例如:如果在调整大小之前获取宽度为300像素的元素,然后触发调整大小。之后,该元素为200像素。我想计算差异。 300-200

最佳答案

var $li = $('li'),         // Cache your element
    startW = $li.width();  // Store a variable reference

function setMarginDiff(){  // Create a function that modifies the margin
    var currW = $li.width(),
        diff = startW - currW ;
    $li.css({marginLeft : diff});
}

setMarginDiff();                 // Do on DOM ready
$(window).resize(setMarginDiff); // and on resize

10-01 10:13
查看更多