【问题标题】:doing math with margins and width in jquery在jquery中用边距和宽度做数学
【发布时间】:2013-03-09 05:07:47
【问题描述】:

我想要做的是让内容始终位于容器的中心,即使边距大小和内容大小发生变化。这也意味着容器大小必须根据内容的边距和宽度自行更改。这是一个 js fiddle,它具有一个函数的一般设置和一个给出输出的警报:http://jsfiddle.net/jpY5n/

function resizeContainer(size, distance) {
var postWidth = size;
var postApart = distance * 3;
return postWidth + postApart;
};
$(document).ready(function () {
$('#container').width(resizeContainer($("#content").width(),$("#content").css("margin-left"));
});

理论上我可以使用我设置的函数来更改帖子的宽度,但它不能计算边距,因为正如您在警报中看到的那样,边距是 10px,而不是 10,所以数学返回为 NaN...有没有办法让边距设置让我们说 ßpx 到只是 ß?

【问题讨论】:

    标签: javascript jquery math margins


    【解决方案1】:

    'px'替换为''后,将字符串解析成Number即可得到margin的数值:

    var margin = Number($('#content').css('margin-left').replace('px',''));
    

    Here's the updated Fiddle.

    HTML

    <div id="container">
        <div id="content"></div>
    </div>
    

    JavaScript (jQuery)

    function resizeContainer(size, distance) {
        var postWidth = size * 2;
        var postApart = distance * 3;
        return postWidth + postApart;
    };
    $(document).ready(function () {
        alert("Container width should be set to " + $("#content").width() + " times 2 plus " + $("#content").css("margin-left") + " times 3");
        var width = Number($('#content').width());
        var margin = Number($('#content').css('margin-left').replace('px',''));
        $('#content').width(resizeContainer(width,margin));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多