繁体   English   中英

如何缩放像图像一样的元素?

[英]How can I scale an element like an image?

当图像缩放到百分比比例时,它会保留其长宽比(如果正确完成)。 我需要一个div来模仿这种行为。

我的情况是我需要相对于图像准确定位元素。 图片大小为浏览器宽度的100%,高度可变。 我想使用像素尺寸来确定尺寸和将div放置在距图像边缘正好 800像素的位置,但要使用图像的像素作为尺寸(而不是浏览器像素)。 有没有办法做到这一点?

可以用百分比计算水平位置,但是在我的情况下垂直百分比不起作用。

我可以使用Javascript / JQuery或SASS,欢迎您回答,但我更喜欢纯CSS解决方案。

如果没有意义,请使用jsfiddle,其中包含更多信息: https ://jsfiddle.net/ckcmrs1g/1/

我从这个答案中得到了启发: 确定图像跨浏览器的原始大小?

我进行了一些调整,将其放入函数中,并在加载和调整大小时调用它,因此在调整浏览器窗口大小时会重新计算大小。

这是功能代码:

function fitIn10Pixels() {
    var newImg = new Image();

    newImg.onload = function() {
      var height = newImg.height;
      var width = newImg.width;
      var widthRatio = $(".redbox img").width()/width;
      var heightRatio = $(".redbox img").height()/height;
      var tenFromLeft = 10*widthRatio;
      var tenFromTop = 10*heightRatio;

      $(".bluebox img").css("left",tenFromLeft+"px");
      $(".bluebox img").css("top",tenFromTop+"px");
      $(".bluebox img").css("height",$(".redbox img").height()-2*tenFromTop+"px");
      $(".bluebox img").css("width",$(".redbox img").width()-2*tenFromLeft+"px");
    };

    newImg.src = $(".redbox img")[0].src; // this must be done AFTER setting onload
}

您可以在这里查看小提琴: https : //jsfiddle.net/ckcmrs1g/9/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM