Javascript 适合窗口大小的CSS变换比例

Javascript 适合窗口大小的CSS变换比例,javascript,jquery,html,css,css-transitions,Javascript,Jquery,Html,Css,Css Transitions,我尝试了很多,但没有得到任何正确的解决方案 这是我的代码: $(函数(){ $(“.zoom close”)。打开(“单击”,函数(){ $(“.zoom close”).toggleClass(“transform”,1000); $(“.img”).toggleClass(“活动”,1000); }); }); 正文{ 背景:红色; 宽度:100%; 保证金:0; } 上校{ 宽度:30%; } .img{ 显示:块; 过渡:所有0.5s缓解; 位置:相对位置; 过渡:所有0.5s缓解;

我尝试了很多,但没有得到任何正确的解决方案

这是我的代码:

$(函数(){
$(“.zoom close”)。打开(“单击”,函数(){
$(“.zoom close”).toggleClass(“transform”,1000);
$(“.img”).toggleClass(“活动”,1000);
});
});
正文{
背景:红色;
宽度:100%;
保证金:0;
}
上校{
宽度:30%;
}
.img{
显示:块;
过渡:所有0.5s缓解;
位置:相对位置;
过渡:所有0.5s缓解;
-webkit转换:1s
}
.img img{
宽度:100%;
}
.img.active{
位置:绝对位置;
左:0;
排名:0;
转换:比例(2.5);
-webkit变换原点:左上角;
过渡:所有0.5s缓解;
}
.img.activeimg{
过渡:所有0.5s缓解;
}
.缩放关闭{
位置:绝对位置;
右:10px;
底部:10px;
背景:#eee;
边界:0;
宽度:32px;
高度:32px;
填充:8px 8px 15px;
光标:指针;
大纲:0;
边界半径:0;
过渡:所有0.5s缓解;
}
.zoom-close.transform{
边界半径:100%;
过渡:所有0.5s缓解;
z指数:10;
背景:#fff;
位置:绝对位置;
右:5px;
顶部:18px;
}
.zoom-close.transform.zoom-inner{
不透明度:0;
过渡:所有0.5s缓解;
}
.zoom-close.transform.zoom{
边界:0;
}
.zoom-close.transform.zoom:之前{
宽度:2倍;
高度:17px;
顶部:1px;
左:7px;
变换:旋转(45度);
过渡:所有0.5s缓解;
}
.zoom-close.transform.zoom:之后{
高度:2倍;
宽度:17px;
顶部:9px;
左:-1px;
变换:旋转(45度);
过渡:所有0.5s缓解;
}
.zoom{
宽度:10px;
高度:10px;
边界半径:8px;
位置:相对位置;
边框:2倍实心#000;
}
.zoom:以前{
内容:'';
宽度:2倍;
高度:8px;
背景:#000;
显示:块;
顶部:1px;
左:4px;
位置:绝对位置;
过渡:所有0.5s缓解;
}
.放大内部{
宽度:8px;
高度:3倍;
显示:块;
背景:#000;
位置:绝对位置;
顶部:10px;
左:7px;
变换:旋转(45度);
-webkit变换:旋转(45度);
过渡:所有0.5s缓解;
}
.zoom:之后{
内容:'';
高度:2倍;
宽度:8px;
背景:#000;
显示:块;
顶部:4px;
左:1px;
位置:绝对位置;
过渡:所有0.5s缓解;
}

您需要在
zoom
事件上获得屏幕大小,如
宽度
高度

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div class="col">
  <div class="img">
    <img src="https://via.placeholder.com/250"  >

  </div>
    <br><br><br>
    <button class="zoom-close">
      <div class="zoom"><span class="zoom-inner"></span> </div>
    </button>
</div>

您需要在
zoom
事件上获得屏幕大小,如
width
height

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div class="col">
  <div class="img">
    <img src="https://via.placeholder.com/250"  >

  </div>
    <br><br><br>
    <button class="zoom-close">
      <div class="zoom"><span class="zoom-inner"></span> </div>
    </button>
</div>

如果我们将图像宽度缩放为“内宽”,高度也会增加,并导致垂直滚动(因为图像大小可能会变化)。这样可以吗you@Ajith如果它垂直滚动没有问题。这解决了你的问题吗@Awais Sorry。。不缩放应从拇指图像的大小开始。但在这个答案中,它是从大小0开始的。如果我们将图像宽度缩放到宽度,高度也会增加,并会导致垂直滚动(因为图像大小可能会变化)。这样可以吗you@Ajith如果它垂直滚动没有问题。这解决了你的问题吗@Awais Sorry。。不缩放应从拇指图像的大小开始。但是在这个答案中,它是从0号开始的。如果您需要一些更改,请告诉我。我相信您也可以使用
100vw
,即使在类和切换中也是如此it@AjayKumar当然我会检查并让你知道。无法让它工作。。如果可能的话,你能为我添加一个工作片段吗?@AjayKumar只在这个小提琴中工作,并且失去了转换效果(如果您需要一些更改,请告诉我。我相信您也可以使用
100vw
,即使是在类和切换中也可以it@AjayKumar当然。我会检查并让你知道。无法让它工作。如果可能的话,你能为我添加一个工作片段吗?@AjayKumar只在这把小提琴中工作,并且失去了转换效果(