使用jquery计算相对于容器的宽度和高度

Posted

技术标签:

【中文标题】使用jquery计算相对于容器的宽度和高度【英文标题】:calculating width & height relative to container using jquery 【发布时间】:2012-12-28 13:45:54 【问题描述】:

我的图像容器是 image-wrap 类,.image-wrap img 宽度和高度设置为 100% 填充容器。

CSS:

    .image-wrap
    width:600px;
    height:400px;
    position:relative;
    overflow:hidden;
    
    .image-wrap img
    position:relative;
    width:100%;
    height:100%;
    

现在我想在 image-warp 中设置 5 px 的填充,这还需要将 .image-wrap img 的宽度和高度更改为另一个 % 值。如何计算并将其设置为 jquery var,因此我可以使用 jquery 将其添加到 image-wrap img 类。即使对于image-wrap 的任何其他宽度-高度值对(可能用于响应式设计),我的 5 px 填充保持不变。帮助我评估数学方程以将宽度高度 % 设置为 jquery var。

【问题讨论】:

如果您想保留图片的百分比,则公式为 590*100/600。然后是 99.something %。 我想设置 5 px 的内边距。所以我的图像宽度和高度总是比图像包装容器的高度宽度小 10 px。 谢谢斯文!你已经这样计算了(600px-10px)。但我想用jquery为容器的任何高度-宽度参数计算它。 那么您在公式中不使用固定数字,您只需查询元素的高度/宽度并从中减去 10px。然后你动态地拥有它。 【参考方案1】:
jQuery(".image-wrap").each(function() 

    myWidth = jQuery(this).width();
    myHeight = jQuery(this).height();
    myWidth = myWidth - 10;
    myHeight = myHeight - 10;
    myWidth = myWidth.toString().concat("px");
    myHeight = myHeight.toString().concat("px");

    jQuery(this).find("img").css(

        height: myHeight,
        width: myWidth
    );
);

希望对你有帮助

【讨论】:

我已经得到了相同的。不需要 concat("px)。我们可以简单地通过 var + "px" 得到它。【参考方案2】:

jQuery:

   var $imgHeight = $('.image-wrap img').height();
   var $imgWidth = $('.image-wrap img').width();

你也可以用 css3 做到这一点:

.image-wrap img
  position:relative;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  padding: 5px;

【讨论】:

这不是真的,你可以用 jquery 做到这一点,没有任何仅部分支持的 CSS3 属性。 这只是一个例子,它只能用 css 来完成。它有什么问题? 你写你只能用 CSS3 是错误的。这给人的印象是没有其他可能性。【参考方案3】:
jQuery("img.image-wrap").css(padding:'5px', width:'590px', height:'390px');

希望对你有帮助

【讨论】:

感谢您的回答!这是用 height 固定的,但我想为任何高度宽度对动态设置它。

以上是关于使用jquery计算相对于容器的宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 获取容器宽度和长度

元素竖向的百分比设定是相对于容器的高度吗?

根据宽度计算div的高度并保持比例[重复]

CSS 根据 jQuery 的宽度百分比设置高度

使用 jquery 将容器的宽度增加 10 rem

jQuery + CSS。如何计算 innerHTML 的高度和宽度?